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

免费网站建设可信赖织梦cms做网站流程

免费网站建设可信赖,织梦cms做网站流程,电子贺卡app,温州网站建设技术托管目录 1 问题2 实现 1 问题 一个springboot 项目,需要token 验证,前端传过来token ,我们一般在项目全局写一个过滤器,去验证前端传过来的token ,如果有哪些接口不需要token验证,那么就排除这些接口,这个也需要配置。 …

目录

  • 1 问题
  • 2 实现

1 问题

一个springboot 项目,需要token 验证,前端传过来token ,我们一般在项目全局写一个过滤器,去验证前端传过来的token ,如果有哪些接口不需要token验证,那么就排除这些接口,这个也需要配置。

但是这样就有一个问题,那就是不能一直配置不需要token验证的接口

所以现在我们就需要自定义一个注解,如果你认为哪个接口不需要token 验证就可以访问,那么就在这个接口上面写这个自定义的注解就可以了

2 实现

第一步,自定义一个注解

/*** 排除token 注解* */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExcludeTokenValidation {
}

第二步,写一个过滤器


@Slf4j
@Component
public class AuthInterceptor implements HandlerInterceptor {private static final String TOKEN = "token";@Autowiredprivate RedisUtil redisUtil;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {if (handler instanceof HandlerMethod) {HandlerMethod handlerMethod = (HandlerMethod) handler;// 检查方法上是否有 @ExcludeTokenValidation 注解if (handlerMethod.hasMethodAnnotation(ExcludeTokenValidation.class)) {return true; // 如果有该注解,直接通过,不进行 token 验证}}String token = request.getHeader(TOKEN);// 从参数中获取tokenif (ObjectUtils.isEmpty(token)) {token = request.getParameter(TOKEN);}if (!ObjectUtils.isEmpty(token)){SysUser loginUser = getUser(token);UserContext.setUser(loginUser);} else{response.setStatus(HttpServletResponse.SC_FORBIDDEN);output(response, noPermissionMsg("没有对应权限,联系管理员"));return false;}return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {//手动清除当前用户上下文的用户对象UserContext.remove();}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {}/*** 获取用户信息* @param token* @return*/private SysUser getUser(String token) {Object o = redisUtil.get(token);JSONObject userJson = JSONObject.parseObject(o.toString());SysUser sysUser = JSON.toJavaObject(userJson, SysUser.class);return sysUser;}/*** 响应体返回** @param response* @param result* @throws IOException*/private void output(HttpServletResponse response, Result<String> result) throws IOException {response.setContentType("application/json;charset=UTF-8");ServletOutputStream outputStream = null;try {outputStream = response.getOutputStream();outputStream.write(JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8));} catch (IOException e) {e.printStackTrace();} finally {outputStream.flush();outputStream.close();}}/*** @param msg 消息信息* @return Result<T> 统一返回*/private Result<String> noPermissionMsg(String msg) {String code = String.valueOf(HttpServletResponse.SC_FORBIDDEN);Result<String> stringResult = ResultUtil.build(code, msg, null);return stringResult;}}

第三步,全剧配置 这个 过滤器

@Configuration
public class WebConfig implements WebMvcConfigurer {@BeanAuthInterceptor authlInterceptor() {return new AuthInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {List<String> urls = new ArrayList<>();urls.add("/favicon.ico");urls.add("**/swagger-ui.html");urls.add("/swagger-ui.html/**");registry.addInterceptor(authlInterceptor()).addPathPatterns("/**").excludePathPatterns(urls);}
}

第四部,在不想要token 验证的接口上面添加这个自定义注解
在这里插入图片描述
第五步,启动项目之后,访问这个接口就可以了

http://www.yayakq.cn/news/483901/

相关文章:

  • 中国建设执业资格注册中心网站wordpress切换城市插件
  • 即墨城乡建设局网站仙居网站建设
  • 中山网站模板品牌建设公司排名
  • 京东网站是哪个公司做的电子商务是干什么的工资一般多少
  • 兴化住房和城乡建设局网站微信长图的免费模板网站
  • 做门户网站的网络公司编写微信小程序用什么软件
  • 云彩网站广西桂林天气
  • 站点和网页的关系网站开发公司 郑州
  • 模板网站zencarthtml做的宠物网站
  • 杭州建设厅网站整站建设 想做一个外卖网站
  • 网站优化是什么做ppt网站有哪些内容
  • 网站路径怎么做怎么增加网站首页权重
  • 北京专业网站制作服务如何做国外网站的镜像
  • 网站建设费用构成wordpress本地添加图片不显示图片
  • 建站公司佛山千里做他千百度网站
  • 转播网站如何做中国建筑装饰网站
  • 怎么做电脑网站后台公司网站在国外打开很慢使用cdn好还是国外租用服务器好
  • 为企业做网站策划案南宁网站建设
  • 大部分网站是国内虚拟主机和国外虚拟主机音乐网站禁止做浅度链接
  • 去哪儿网站上做民宿需要材料商丘 网站建设
  • 网站设计中新闻版块怎么做做特卖网站
  • asp网站实现php栏目湘潭做网站出色磐石网络
  • 设计学网站新装本地wordpress超慢
  • 网站专题设计软件做网站中二级导航链接到一级导航
  • 直接用apk 做登陆网站品牌宝免费网站
  • 网站建设与管理工资可以免费追剧的app
  • 合肥建设银行官网招聘网站网站配色 原则
  • 设计师效果图网站手机在线
  • drupal网站建设数据库wordpress后台admin防止恶意
  • 网站建设方案策划书前言收录很快的推广网站