注解
2022/8/29 23:22:47
本文主要是介绍注解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public class WxJwtFilter implements Filter { @Autowired private IUcUserService userService; @Autowired RequestMappingHandlerMapping requestMappingHandlerMapping; @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; LoginUserUtil.removeUser(); // LoginUserUtil.removeTenantId(); String tenantId = request.getHeader(Constants.MP_APP_ID_HEADER_NAME); if (StringUtils.isNotEmpty(tenantId)){ LoginUserUtil.setCurrentTenantId(tenantId); } boolean isOk = false; try { RequiresAuthentication requiresAuthentication = null; HandlerExecutionChain handlerExecutionChain = requestMappingHandlerMapping.getHandler(request); Object object = null; if (handlerExecutionChain != null){ object = handlerExecutionChain.getHandler(); } if (object instanceof HandlerMethod){ HandlerMethod handler = (HandlerMethod) object; requiresAuthentication = handler.getMethodAnnotation(RequiresAuthentication.class); } if (requiresAuthentication != null){ String token = request.getHeader(Constants.H5_TOKEN_HEADER_NAME); if (StringUtils.isEmpty(token)){ token = request.getParameter(Constants.H5_TOKEN_HEADER_NAME); } if (StringUtils.isEmpty(token)){ toJsonResponse(servletResponse, ResponseUtil.unlogin()); }else { log.info("用户token:{}", token); try { String userId = JwtHelper.getInstance().getSubjectFromToken(token); UcUser user = userService.getById(Integer.parseInt(userId)); if (user != null){ LoginUserUtil.setCurrentUser(user); isOk = true; } } catch (Exception e) { log.error(e.getLocalizedMessage(), e); isOk = false; } if (isOk){ filterChain.doFilter(servletRequest, servletResponse); }else { toJsonResponse(servletResponse, ResponseUtil.unlogin()); } } }else { filterChain.doFilter(servletRequest, servletResponse); } } catch (Exception e) { throw new ServletException(e); } } private void toJsonResponse(ServletResponse servletResponse, ResponseWrapper responseWrapper) { try { servletResponse.setContentType("application/json;charset=UTF-8"); JacksonUtil.getObjectMapper().writeValue(servletResponse.getOutputStream(), responseWrapper); } catch (IOException e) { log.error(e.getLocalizedMessage(), e); } } }
这篇关于注解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署