From 861cc6cf468257b50835f3277f2053ef46a2e3fd Mon Sep 17 00:00:00 2001 From: jianjun Date: Thu, 16 Sep 2021 17:34:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=88=E7=94=A8=E7=9D=80=20=E5=86=8D?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/service/impl/UserServiceImpl.java | 13 +++---- .../interceptor/AuthorizationInterceptor.java | 35 +++++++++++++++++-- 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java index 4b430e0..feb11ea 100644 --- a/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java +++ b/tduck-account/src/main/java/com/tduck/cloud/account/service/impl/UserServiceImpl.java @@ -111,17 +111,18 @@ public class UserServiceImpl extends ServiceImpl impleme */ @Override public LoginUserVO getLoginResult(UserEntity userEntity, AccountChannelEnum channel, String requestIp) { + LoginUserVO loginUserVO = new LoginUserVO(); + loginUserVO.setCustomerId(userEntity.getCustomerId()); + loginUserVO.setUserId(userEntity.getId()); + LoginUserUtil.set(loginUserVO); + userEntity.setLastLoginIp(requestIp); userEntity.setLastLoginChannel(channel); userEntity.setLastLoginTime(LocalDateTime.now()); this.updateById(userEntity); String token = jwtUtils.generateToken(userEntity.getId()); - //获取当前用户的客户Id及用户Id - LoginUserVO loginUserVO = LoginUserUtil.get(); - if (loginUserVO == null){ - loginUserVO = new LoginUserVO(); - } - return new LoginUserVO(userEntity.getAvatar(), userEntity.getName(), token, loginUserVO.getCustomerId(), loginUserVO.getUserId()); + + return new LoginUserVO(userEntity.getAvatar(), userEntity.getName(), token, userEntity.getCustomerId(), userEntity.getId()); } @Override diff --git a/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java b/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java index 30d8f18..0316793 100644 --- a/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java +++ b/tduck-api/src/main/java/com/tduck/cloud/api/web/interceptor/AuthorizationInterceptor.java @@ -10,11 +10,14 @@ import com.tduck.cloud.common.vo.LoginUserVO; import io.jsonwebtoken.Claims; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; -import org.springframework.web.method.HandlerMethod; +import org.springframework.util.AntPathMatcher; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; +import javax.annotation.PostConstruct; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; /** * @author qing @@ -23,6 +26,15 @@ import javax.servlet.http.HttpServletResponse; public class AuthorizationInterceptor extends HandlerInterceptorAdapter { public static final String USER_KEY = "userId"; private final JwtUtils jwtUtils; + private static List skipUrlList; + private final AntPathMatcher antPathMatcher = new AntPathMatcher(); + @PostConstruct + private void init(){ + skipUrlList = new ArrayList<>(); + skipUrlList.add("/tduck-api/captcha/get"); + skipUrlList.add("/tduck-api/captcha/check*"); + skipUrlList.add("/tduck-api/login/account*"); + } public AuthorizationInterceptor(JwtUtils jwtUtils) { this.jwtUtils = jwtUtils; @@ -31,7 +43,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { Login annotation; - if (handler instanceof HandlerMethod) { + /*if (handler instanceof HandlerMethod) { annotation = ((HandlerMethod) handler).getMethodAnnotation(Login.class); } else { return true; @@ -39,8 +51,15 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { if (annotation == null) { return true; - } + }*/ + String requestURI = request.getRequestURI(); + if (isSkip(requestURI)){ + System.out.println("=====skip=====url"+requestURI); + return true; + }else { + System.out.println("==========url"+requestURI); + } //获取用户凭证 String token = request.getHeader(jwtUtils.getHeader()); String customerId = request.getHeader(CommonConstants.KEY_CUSTOMER_ID); @@ -79,4 +98,14 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter { //清空threadLocal LoginUserUtil.remove(); } + + private boolean isSkip(String url){ + for (String skipurl : skipUrlList) { + System.out.println(antPathMatcher.match(skipurl, url)+",path"+url+",skipurl:"+skipurl); + if (antPathMatcher.match(skipurl, url)){ + return true; + } + } + return false; + } }