Commit ad54e58acda66c6860f270bb158333da9a26c424

Authored by 芋道源码
Committed by Gitee
2 parents ac17cf18 4294ed25

!7 修复退出功能 退出后重定向到登录页

Merge pull request !7 from dxyx/master
src/main/java/cn/iocoder/dashboard/framework/security/config/SecurityConfiguration.java
@@ -152,7 +152,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @@ -152,7 +152,7 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
152 .anyRequest().authenticated() 152 .anyRequest().authenticated()
153 .and() 153 .and()
154 .headers().frameOptions().disable(); 154 .headers().frameOptions().disable();
155 - httpSecurity.logout().logoutUrl("/logout").logoutSuccessHandler(logoutSuccessHandler); 155 + httpSecurity.logout().logoutUrl(webProperties.getApiPrefix() + "/logout").logoutSuccessHandler(logoutSuccessHandler);
156 // 添加 JWT Filter 156 // 添加 JWT Filter
157 httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class); 157 httpSecurity.addFilterBefore(authenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
158 } 158 }
src/main/java/cn/iocoder/dashboard/framework/security/core/handler/LogoutSuccessHandlerImpl.java
1 package cn.iocoder.dashboard.framework.security.core.handler; 1 package cn.iocoder.dashboard.framework.security.core.handler;
2 2
3 import cn.hutool.core.util.StrUtil; 3 import cn.hutool.core.util.StrUtil;
  4 +import cn.iocoder.dashboard.common.pojo.CommonResult;
4 import cn.iocoder.dashboard.framework.security.config.SecurityProperties; 5 import cn.iocoder.dashboard.framework.security.config.SecurityProperties;
5 import cn.iocoder.dashboard.framework.security.core.service.SecurityAuthFrameworkService; 6 import cn.iocoder.dashboard.framework.security.core.service.SecurityAuthFrameworkService;
6 import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils; 7 import cn.iocoder.dashboard.framework.security.core.util.SecurityFrameworkUtils;
@@ -36,6 +37,6 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler { @@ -36,6 +37,6 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
36 securityFrameworkService.logout(token); 37 securityFrameworkService.logout(token);
37 } 38 }
38 // 返回成功 39 // 返回成功
39 - ServletUtils.writeJSON(response, null); 40 + ServletUtils.writeJSON(response, CommonResult.success(null));
40 } 41 }
41 } 42 }
src/main/java/cn/iocoder/dashboard/modules/system/service/auth/impl/SysAuthServiceImpl.java
@@ -160,7 +160,25 @@ public class SysAuthServiceImpl implements SysAuthService { @@ -160,7 +160,25 @@ public class SysAuthServiceImpl implements SysAuthService {
160 160
161 @Override 161 @Override
162 public void logout(String token) { 162 public void logout(String token) {
163 -// AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, "退出成功")); TODO 需要搞一搞 163 + // 查询用户信息
  164 + LoginUser loginUser = userSessionService.getLoginUser(token);
  165 + if(loginUser == null) {
  166 + return;
  167 + }
  168 + // 删除session
  169 + userSessionService.deleteUserSession(token);
  170 + this.createLogoutLog(loginUser.getUsername(), SysLoginResultEnum.SUCCESS);
  171 + }
  172 +
  173 + private void createLogoutLog(String username, SysLoginResultEnum loginResult) {
  174 + SysLoginLogCreateReqVO reqVO = new SysLoginLogCreateReqVO();
  175 + reqVO.setLogType(SysLoginLogTypeEnum.LOGOUT_SELF.getType());
  176 + reqVO.setTraceId(TracerUtils.getTraceId());
  177 + reqVO.setUsername(username);
  178 + reqVO.setUserAgent(ServletUtils.getUserAgent());
  179 + reqVO.setUserIp(ServletUtils.getClientIP());
  180 + reqVO.setResult(loginResult.getResult());
  181 + loginLogService.createLoginLog(reqVO);
164 } 182 }
165 183
166 @Override 184 @Override