package com.fusionability.web.interceptor;
import org.apache.struts2.ServletActionContext;
import com.fusionability.web.bean.User;
import com.fusionability.web.utils.Constants;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
/**
* 认证拦截器(可以拦截URL的跳转)
*/
public class AuthInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation invocation) throws Exception {
if("/FusionAbility/user/register.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/login.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/doRegister.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/doLogin.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/isExistUser.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/refreshPatchcaImage.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/doMail.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/isRightCode.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/updateRetrievepassword.action".equals(ServletActionContext.getRequest().getRequestURI())
||"/FusionAbility/user/goUpdateRetrievepassword.action".equals(ServletActionContext.getRequest().getRequestURI())){
return invocation.invoke();
}
User user = (User)ServletActionContext.getRequest().getSession().getAttribute(Constants.SESSION_USER);
if (user == null) {
//重定向到登录页面
return Action.LOGIN;
}
return invocation.invoke();
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="interceptorPackage" extends="struts-default">
<interceptors>
<interceptor name="authInterceptor" class="com.fusionability.web.interceptor.AuthInterceptor"></interceptor>
<interceptor-stack name="traceStack">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="authInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="traceStack"></default-interceptor-ref>
</package>
</struts>
捐助开发者
在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



谢谢您的赞助,我会做的更好!
认证拦截器详解:实现用户权限管理
本文深入探讨了认证拦截器的功能和实现机制,着重介绍了如何通过拦截URL跳转来实现用户权限管理,确保只有经过身份验证的用户才能访问特定页面。详细解释了拦截器如何判断用户身份,并根据不同情况执行重定向或正常调用Action。
4632

被折叠的 条评论
为什么被折叠?



