From 5073a245f53fd5ca936e779be8c6b9b19d42f67d Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期四, 11 七月 2024 09:47:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java | 20 +++++++++++++++++--- 1 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java index 7c2a229..58df9d5 100644 --- a/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java +++ b/src/main/java/com/ycl/jxkg/config/spring/security/RestAuthenticationSuccessHandler.java @@ -1,15 +1,20 @@ package com.ycl.jxkg.config.spring.security; import com.ycl.jxkg.base.SystemCode; +import com.ycl.jxkg.constants.CaffeineConstant; import com.ycl.jxkg.domain.entity.UserEventLog; +import com.ycl.jxkg.enums.general.YesOrNoEnum; import com.ycl.jxkg.event.UserEvent; import com.ycl.jxkg.service.UserService; +import com.ycl.jxkg.utils.CaffeineUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.User; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -29,6 +34,7 @@ private final ApplicationEventPublisher eventPublisher; private final UserService userService; + private final CaffeineUtil caffeineUtil; /** * Instantiates a new Rest authentication success handler. @@ -37,9 +43,10 @@ * @param userService the user service */ @Autowired - public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService) { + public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService, CaffeineUtil caffeineUtil) { this.eventPublisher = eventPublisher; this.userService = userService; + this.caffeineUtil = caffeineUtil; } @Override @@ -47,14 +54,21 @@ Object object = authentication.getPrincipal(); if (null != object) { User springUser = (User) object; + // 鐧诲綍涔嬪悗淇濆瓨鎴栨洿鏂� 鐢ㄦ埛鍚嶄笌session鐨勫叧绯� + String sessionId = request.getSession().getId(); + caffeineUtil.put(CaffeineConstant.AUTH, springUser.getUsername(), sessionId); com.ycl.jxkg.domain.entity.User user = userService.getUserByUserName(springUser.getUsername()); if (null != user) { + // 瀵嗙爜杩囨湡杩斿洖寮哄埗淇敼瀵嗙爜鏍囪瘑 + if (YesOrNoEnum.YES.equals(user.getNeedUpdatePassword())) { + RestUtil.response(response, 205, "瀵嗙爜杩囨湡锛岃淇敼瀵嗙爜", user.getId()); + return; + } UserEventLog userEventLog = new UserEventLog(user.getId(), user.getUserName(), user.getRealName(), new Date()); userEventLog.setContent(user.getUserName() + " 鐧诲綍浜嗘睙瑗胯闊宠棰戝煿璁郴缁�"); eventPublisher.publishEvent(new UserEvent(userEventLog)); com.ycl.jxkg.domain.entity.User newUser = new com.ycl.jxkg.domain.entity.User(); - newUser.setUserName(user.getUserName()); - newUser.setImagePath(user.getImagePath()); + BeanUtils.copyProperties(user,newUser); RestUtil.response(response, SystemCode.OK.getCode(), SystemCode.OK.getMessage(), newUser); } } else { -- Gitblit v1.8.0