当前位置: 首页 > news >正文

CSS3网站开发一级域名好还是二级域名好

CSS3网站开发,一级域名好还是二级域名好,微店商城官网,网站备案 密码找回在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的 ~ 常规处理方法基本是 使用拦截器或过滤器,拦截需要认证的请求路径。在拦截器中判断session或token信息,如果存在则放行,否则跳转到…

在项目开发过程中,会有很多API接口不需要登录就能直接访问,比如公开数据查询之类的 ~

常规处理方法基本是 使用拦截器过滤器,拦截需要认证的请求路径。在拦截器中判断session或token信息,如果存在则放行,否则跳转到登录页。过滤器原理与拦截器类似,可以在过滤器中判断请求的session或token信息,麻烦的地方就是:每次开发新的免登录接口的时候,都需要去配置一下路径

今天介绍一个更优雅的方法:自定义注解的方式

基本思路是:自定义一个注解,在不需要校验登录的Controller方法或类上使用该注解。通过AOP或拦截器在方法执行前判断免登录状态

自定义注解这里命名为NoToken

import java.lang.annotation.*;/*** 不校验token注解*/
@Target({ElementType.METHOD,ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface NoToken {String name() default "";
}

这里采用拦截器搭配使用,拦截器代码如下

@Slf4j
public class SessionInterceptor implements HandlerInterceptor {//在请求处理之前进行调用Controller方法调用之前@Override@Referencepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if (handler instanceof HandlerMethod) {HandlerMethod handlerMethod = (HandlerMethod) handler;NoToken classAnno = handlerMethod.getMethod().getDeclaringClass().getAnnotation(NoToken.class);//获取出Controller上的NoToken注解if (classAnno != null) {// 如果注解不为null, 说明不需要拦截, 直接放过return true;} else {Method method = handlerMethod.getMethod();handlerMethod.getMethodAnnotation(NoToken.class);//获取出方法上的NoToken注解NoToken access = method.getAnnotation(NoToken.class);if (access != null) {// 如果注解不为null, 说明不需要拦截, 直接放过return true;}}}RedisService redis = (RedisService) SpringContextUtils.getBean("redisService");String token = request.getHeader("token");boolean ok = false;log.info("开始检验token!");if (!StringUtils.isEmpty(token)) {if (redis.exists(token)) {redis.expire(token, ConstantsUtil.APP_TOKEN_EXPIRE);log.info("token有效!");ok = true;}}if (!ok) {Map<String, Object> result = new HashMap<>();result.put("returncode","-1");result.put("returnmsg", "登录已过期,请重新登录");writeJSON(response, result);return ok;}return ok;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) throws Exception {}public void writeJSON(HttpServletResponse response, Object o)throws IOException {response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();String JsonString = JSON.toJSONString(o);out.write(JsonString);}
}

大家看到在NoToken注解和拦截器上,做了两种处理 也就是类注解 方法注解

如果注解放到方法上,该方法调用的时候就是免登录的。如果注解放到@Controller类上,那么该类下的所有请求接口,都是免登录的(是不是很方便 ~

/*** 类上加NoToken注解,该类下所有方法都免登录*/
@NoToken
@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {/*** 方法上单独加注解,只对该方法免登录*/@NoToken@RequestMapping("testMethod")public void testMethod() {System.out.println("1111111111111");}}

以上就是实现方式,如果觉得还有用,就点个赞吧 ~

http://www.yidumall.com/news/98590.html

相关文章:

  • 学而思的网站哪里做的seo优化排名教程百度技术
  • 字体版权登记网站个人怎么做网站
  • 广州致峰网站建设自己的网站怎么做seo
  • 现在建设网站挣钱吗咨询网络服务商
  • 没有logo可以做网站的设计吗长春网站建设公司
  • 9e做网站网络优化培训骗局
  • 美国做刀剑的网站关键词排名优化公司哪家好
  • php 网站出现乱码怎样在百度上做广告推广
  • 公司行业类型有哪些企业网站怎么优化
  • 深圳产品设计公司有哪些seo建站的步骤
  • 长沙网站优化深圳关键词
  • 关于域名用于非网站用途的承诺书珠海网站seo
  • 国外网站注册权重查询
  • 怎么样让客户做网站和小程序怎么建网站免费的
  • 体育建设网站首页seo免费推广
  • 万网制作网站百度免费下载安装百度
  • 广州小程序商城开发公司seo新手入门教程
  • 做书评的网站今天新疆新闻头条
  • 怎么自己做网站加盟零基础seo入门教学
  • 国外黄冈网站推广软件免费吗沈阳cms模板建站
  • 网站做浮动边框asp代码杭州网站关键词排名
  • 网站建设有什么系统申请域名的方法和流程
  • 博物馆门户网站建设目标免费推广平台有哪些
  • 做网站必须花钱吗网站推广的软件
  • 天津哪里做网站网络推广深圳有效渠道
  • 网站建设服务天软科技semester是什么意思
  • 做网站 需要注意什么整站优化seo公司哪家好
  • 有免费制作单页的网站吗怎样在百度上宣传自己的产品
  • 辽宁省建设科学研究院网站谷歌广告推广怎么做
  • 网站如何注册域名苏州seo关键词优化方法