[转]struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor
package com.sise.action; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class AuthorizationInterceptor extends AbstractInterceptor { private String ignoreActions; // ignoreActions属性的getter方法 public String getIgnoreActios() { return ignoreActions; } // ignoreActions属性的setter方法 public void setIgnoreActions(String ignoreActions) { this .ignoreActions = ignoreActions; } @Override public String intercept(ActionInvocation invocation) throws Exception { ActionContext ctx = invocation.getInvocationContext(); Map session = ctx.getSession(); Object user = session.get( "currentUserId" ); boolean ignore = false ; if (user != null || ignore == true ) { return invocation.invoke(); } else { return Action.LOGIN; } } } |
struct.xml配置文件
<?xml version= "1.0" encoding= "UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd" > <struts> < package name= "default" extends = "struts-default" > <interceptors> <interceptor name= "loginInterceptor" class = "com.sise.action.AuthorizationInterceptor" ></interceptor> <interceptor-stack name= "loginDefaultStack" > <interceptor-ref name= "loginInterceptor" > <param name= "ignoreActions" > validate_code,register.*,.*login.*,upload,connector</param> </interceptor-ref> <interceptor-ref name= "defaultStack" ></interceptor-ref> </interceptor-stack> </interceptors> < default -interceptor-ref name= "loginDefaultStack" ></ default -interceptor-ref> <global-results> <result name= "login" type= "redirect" >/login.html</result> </global-results> <action name= "index" class = "com.sise.action.IndexAction" method= "index" > <result name= "success" >/index.html</result> </action> <action name= "login" class = "com.sise.action.LoginAction" method= "login" > <result type= "redirectAction" >index</result> <result name= "login" >/login.html</result> <interceptor-ref name= "defaultStack" ></interceptor-ref> </action> </ package > </struts> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?