From 3c4fee1db116c11d4f04727cfe076d7c94daeaf2 Mon Sep 17 00:00:00 2001 From: yanzhaofeige <yanzhaofeige@qq.com> Date: Mon, 30 Sep 2024 12:10:57 +0800 Subject: [PATCH] init --- cpzidc-framework/src/main/java/com/odcc/cpzidc/framework/security/handle/LogoutSuccessHandlerImpl.java | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 53 insertions(+), 0 deletions(-) diff --git a/cpzidc-framework/src/main/java/com/odcc/cpzidc/framework/security/handle/LogoutSuccessHandlerImpl.java b/cpzidc-framework/src/main/java/com/odcc/cpzidc/framework/security/handle/LogoutSuccessHandlerImpl.java new file mode 100644 index 0000000..67596b0 --- /dev/null +++ b/cpzidc-framework/src/main/java/com/odcc/cpzidc/framework/security/handle/LogoutSuccessHandlerImpl.java @@ -0,0 +1,53 @@ +package com.odcc.cpzidc.framework.security.handle; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; +import com.alibaba.fastjson2.JSON; +import com.odcc.cpzidc.common.constant.Constants; +import com.odcc.cpzidc.common.core.domain.AjaxResult; +import com.odcc.cpzidc.common.core.domain.model.LoginUser; +import com.odcc.cpzidc.common.utils.MessageUtils; +import com.odcc.cpzidc.common.utils.ServletUtils; +import com.odcc.cpzidc.common.utils.StringUtils; +import com.odcc.cpzidc.framework.manager.AsyncManager; +import com.odcc.cpzidc.framework.manager.factory.AsyncFactory; +import com.odcc.cpzidc.framework.web.service.TokenService; + +/** + * 自定义退出处理类 返回成功 + * + * @author ruoyi + */ +@Configuration +public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler +{ + @Autowired + private TokenService tokenService; + + /** + * 退出处理 + * + * @return + */ + @Override + public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) + throws IOException, ServletException + { + LoginUser loginUser = tokenService.getLoginUser(request); + if (StringUtils.isNotNull(loginUser)) + { + String userName = loginUser.getUsername(); + // 删除用户缓存记录 + tokenService.delLoginUser(loginUser.getToken()); + // 记录用户退出日志 + AsyncManager.me().execute(AsyncFactory.recordLogininfor(userName, Constants.LOGOUT, MessageUtils.message("user.logout.success"))); + } + ServletUtils.renderString(response, JSON.toJSONString(AjaxResult.success(MessageUtils.message("user.logout.success")))); + } +} -- Gitblit v1.9.3