From 7b3be7b18ddb0308190bf4463a63043b5b7649f9 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期四, 14 十二月 2023 17:00:50 +0800 Subject: [PATCH] ERP接口 --- server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java | 33 ++++++++++++++++++++++++--------- 1 files changed, 24 insertions(+), 9 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java b/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java index 39f139d..8081e3e 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java +++ b/server/dmvisit_service/src/main/java/com/doumee/config/Jwt/WebMvcConfig.java @@ -1,14 +1,19 @@ package com.doumee.config.Jwt; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.config.annotation.ErpLoginRequired; import com.doumee.config.annotation.LoginRequired; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.utils.Constants; +import com.doumee.core.utils.redis.RedisUtil; import io.jsonwebtoken.JwtException; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.client.RestTemplate; import org.springframework.web.method.HandlerMethod; @@ -26,6 +31,12 @@ @Autowired private JdbcTemplate dao; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private RedisTemplate<String,Object> redisTemplate; /** * 娣诲姞鎷︽埅鍣� @@ -47,7 +58,7 @@ // Method method = handlerMethod.getMethod(); // 鏈� @LoginRequired 娉ㄨВ锛岄渶瑕佺櫥褰曡璇� - if (beanType.isAnnotationPresent(LoginRequired.class)) { + if (beanType.isAnnotationPresent(LoginRequired.class) || handlerMethod.hasMethodAnnotation(LoginRequired.class)) { //鑾峰彇token String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // 浠� http 璇锋眰澶翠腑鍙栧嚭 token if (StringUtils.isNotBlank(token)) { @@ -55,12 +66,16 @@ } else { throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�"); } - }else if (handlerMethod.hasMethodAnnotation(LoginRequired.class)){ - //鑾峰彇token - String token = request.getHeader(JwtTokenUtil.HEADER_KEY); // 浠� http 璇锋眰澶翠腑鍙栧嚭 token - if (StringUtils.isNotBlank(token)) { - checkLogin(request,response); - } else { + } else if(beanType.isAnnotationPresent(ErpLoginRequired.class) || handlerMethod.hasMethodAnnotation(ErpLoginRequired.class)){ + try { + //ERP 涓氬姟娉ㄨВ + String token = request.getHeader(JwtTokenUtil.HEADER_KEY); + String redisToken = RedisUtil.getObject(redisTemplate,Constants.RedisKeys.ERP_TOKEN,String.class); + if(StringUtils.isBlank(redisToken)||!token.equals(redisToken)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈櫥褰�"); + } + request.setAttribute(JwtTokenUtil.HEADER_KEY,token); + } catch (IllegalArgumentException | JwtException e) { throw new BusinessException(ResponseStatus.NO_LOGIN.getCode(),"鏈櫥褰�"); } // request.setAttribute("token", token); @@ -68,7 +83,7 @@ return true; } }; - registry.addInterceptor(TokenInterceptor).addPathPatterns("/web/**"); + registry.addInterceptor(TokenInterceptor).addPathPatterns("/web/**","/visitbiz/**"); } @@ -82,7 +97,7 @@ throw new BusinessException(ResponseStatus.TOKEN_EXCEED_TIME.getCode(),"闀挎椂闂存湭鎿嶄綔,璇烽噸鏂扮櫥褰�"); } //鑾峰彇璐﹀彿ID - Integer memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); + String memberId = JwtTokenUtil.getJwtPayLoad(token).getMemberId(); Integer isDeleted = dao.queryForObject(" select COALESCE(DELETED,1) from `system_user` where id = ?", Integer.class, memberId); if(isDeleted== Constants.ONE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛宸插垹闄�,璇疯仈绯荤鐞嗗憳"); -- Gitblit v1.9.3