Index: forgon-core/src/main/java/com/forgon/security/action/UserAction.java =================================================================== diff -u -r30498 -r30624 --- forgon-core/src/main/java/com/forgon/security/action/UserAction.java (.../UserAction.java) (revision 30498) +++ forgon-core/src/main/java/com/forgon/security/action/UserAction.java (.../UserAction.java) (revision 30624) @@ -1,9 +1,13 @@ package com.forgon.security.action; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; @@ -32,6 +36,8 @@ private User user; private UserManager userManager; + private Logger logger = Logger.getLogger(getClass()); + public void setUserManager(UserManager userManager) { this.userManager = userManager; } @@ -74,6 +80,7 @@ } public void getLoginUserData() { + //logger.debug("getLoginUserData start。。。" + StrutsParamUtils.getPraramValue("date", null)); JSONObject obj = new JSONObject(); try { LoginUserData loginUserData = AcegiHelper.getLoginUser(); @@ -85,7 +92,9 @@ } catch (Exception e) { obj.put("success", false); obj.put("msg", e.getMessage()); + e.printStackTrace(); } + //logger.debug("getLoginUserData finish。。。result=" + obj); StrutsResponseUtils.output(obj); } @@ -97,7 +106,10 @@ obj.put("success", false); try { LoginUserData loginUserData = AcegiHelper.getLoginUser(); - if(loginUserData != null){ + if(loginUserData != null && org.apache.commons.lang3.StringUtils.isNotBlank(loginUserData.getUserName())){ + HttpServletRequest request = StrutsParamUtils.getRequest(); + HttpServletResponse response = StrutsParamUtils.getResponse(); + //response.sendRedirect(request.getContextPath() + "/j_spring_security_logout"); obj.put("success", true); } } catch (Exception e) { Index: ssts-web/src/main/webapp/logon.jsp =================================================================== diff -u -r30505 -r30624 --- ssts-web/src/main/webapp/logon.jsp (.../logon.jsp) (revision 30505) +++ ssts-web/src/main/webapp/logon.jsp (.../logon.jsp) (revision 30624) @@ -227,13 +227,27 @@ $.ajax({ type:'get', dataType:'json', - url : '${ctx}/systemmanage/user/userAction!detectLogin.do', + url : '${ctx}/buttjoint/buttjointUserAction!detectLogin.do', data : "date=" + new Date().toGMTString(), success : function(response, options) { try{ // 此处返回的有可能不是json字符串,因为注销之后,会被acegi拦截,返回html if(response && response.success){ document.location.href = "${ctx}/j_spring_security_logout"; + //改为以ajax的方式的登出(其实也一样没什么用) + /*$.ajax({ + type:'get', + dataType:'json', + url : '${ctx}/j_spring_security_logout', + data : "date=" + new Date().toGMTString(), + success : function(response, options) { + try{ + // + }catch(e){ + // + } + } + });*/ }else{ } Index: forgon-core/src/main/java/com/forgon/security/action/ButtJointUserAction.java =================================================================== diff -u --- forgon-core/src/main/java/com/forgon/security/action/ButtJointUserAction.java (revision 0) +++ forgon-core/src/main/java/com/forgon/security/action/ButtJointUserAction.java (revision 30624) @@ -0,0 +1,19 @@ +package com.forgon.security.action; + +import org.apache.struts2.convention.annotation.Action; +import org.apache.struts2.convention.annotation.Namespace; +import org.apache.struts2.convention.annotation.ParentPackage; + +/** + * 当浏览器前端访问登录页面时,用于检测用户是否有登录。此action为放行的action + * 目前只调用了detectLogin方法(具体方法实现在父类中) + * @author syf + * @since 2021-02-24 + * + */ +@ParentPackage(value = "default") +@Namespace(value = "/buttjoint") +@Action(value = "buttjointUserAction") +public class ButtJointUserAction extends UserAction { + +}