本文来自CSDN博客,http://blog.csdn.net/JavaWinner/archive/2008/03/16/2186778.aspx
package interceptor;
import java.util.Map;
import bean.LoginedUser;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
@ SuppressWarnings ( "unchecked" )
public class AuthCheckInterceptor extends AbstractInterceptor ...{
private static final long serialVersionUID = -4535462154177128320L;
@ Override
public String intercept(ActionInvocation ai) throws Exception ...{
Map session = ActionContext.getContext().getSession();
LoginedUser user = (LoginedUser)session.get("USER_INFO");
if(null==user)...{// 判断session里是否有key="USER_INFO"的对象
return "globalLogin";// 转发到登录页面
}
return ai.invoke();
}
}
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml" />
<!-- 定义含“权限检查拦截器”的包,供其他模块引用 -->
<package name="struts-default-with-auth-check" extends="struts-default">
<interceptors>
<!-- 定义“权限检查拦截器” -->
<interceptor name="authCheck"
class="interceptor.AuthCheckInterceptor">
</interceptor>
<!-- 定义含“权限检查拦截器”的拦截器栈,注意缺省的拦截器栈“defaultStack”要放在前面 -->
<interceptor-stack name="myStack">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="authCheck"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 正式应用可能含很多package,为了能从其他package中跳转到登录页面,把登录页面定义成全局result -->
<default-interceptor-ref name="myStack"></default-interceptor-ref>
<global-results>
<result name="globalLogin">login.jsp</result>
</global-results>
</package>
<!-- >>>>>>>>>>>>>>>>>>>>>> p1模块 <<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
<!-- 注意package的extends属性,系统中只有“登录/注销”操作不需要检查权限 -->
<package name="p1" extends="struts-default">
<!-- 登录 -->
<action name="login" class="action.LoginAction">
<result>welcome.jsp</result>
<result name="input">login.jsp</result>
</action>
<!-- 注销 -->
<action name="logout" class="action.LogoutAction">
<result>login.jsp</result>
</action>
</package>
<!-- >>>>>>>>>>>>>>>>>>>>>> p2模块 <<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
<package name="p2" extends="struts-default-with-auth-check">
<!-- 试图未经过登录,直接访问welcome页面,测试用 -->
<action name="welcome" class="action.WelcomeAction">
<result>welcome.jsp</result>
</action>
</package>
</struts>
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JavaWinner/archive/2008/03/16/2186778.aspx
分享到:
相关推荐
本篇文章将详细介绍如何配置Struts2的登录拦截器,以及其背后的原理和实践应用。 首先,让我们理解一下拦截器的概念。在Struts2中,拦截器是基于Java的动态代理机制实现的,它们按照预定义的顺序对Action调用进行...
在Struts2配置中,我们需要将这个拦截器添加到拦截器栈中,通常是在`struts.xml`文件中。这样,每次请求到达Action之前,都会先经过这个拦截器: ```xml <struts> ...
1. **拦截器配置**:在`struts.xml`配置文件中,我们需要定义拦截器并将其与特定的Action关联。例如,可以创建一个名为`LoginInterceptor`的拦截器,然后在`<package>`标签内使用`<interceptors>`和`<interceptor>`...
在提供的文件"10Struts2Validation"和"11Struts2InterceptorConfig"中,可能包含了Struts2拦截器配置和验证的示例代码。这些代码可以帮助你理解如何设置拦截器,如何配置验证规则,以及如何在实际应用中实现登录验证...
在这个"struts2实现的简单登陆 附加拦截器防止重复提交"的项目中,我们将深入探讨Struts2如何处理用户登录以及如何通过拦截器来防止重复提交的问题。 首先,我们来理解一下Struts2的核心概念。Struts2框架基于...
struts2上传单个文件及多个文件,strus2拦截器的使用,里面有个user用户,先执行user.jsp即登陆,可以执行上传文件的操作,反之,不能,有个exit...主要文件PremissionInterceptor.java和struts2.xml拦截器配置文件,ok
Struts2 框架是Java Web开发中的一个强大MVC框架,它的核心特性之一是拦截器(Interceptor),它允许开发者在Action执行前后插入自定义的处理逻辑,从而实现诸如日志、权限控制、事务管理等多种功能。在这个场景中,...
Struts2是一个强大的...通过这个示例,开发者可以学习到如何在Struts2框架下构建一个基本的用户登录系统,包括Action、配置、拦截器、结果以及数据库交互等核心概念。这将有助于理解和实践Java Web开发中的认证机制。
5. **配置文件**:`struts.xml`是Struts2的核心配置文件,定义了Action与URL的映射,以及拦截器的栈配置。在这里,我们需要为登录和注册Action添加相应的配置。 6. **服务层(Service)**:在Action中,我们通常会...
在Struts2中,我们还可以利用拦截器(Interceptor)增强功能,如登录拦截器可以检查用户是否已经登录,未登录时重定向到登录页面。日志拦截器可以记录请求信息,帮助调试和监控。 文件"hello_struts2"可能包含了...
Struts2框架通过拦截器处理请求,拦截器链可以实现诸如参数绑定、类型转换、异常处理等功能。在登录案例中,Struts2会自动将表单数据绑定到Action类的属性上,无需手动获取请求参数。 总结一下,Struts2登录案例...
在Struts2配置文件中,将此拦截器添加到默认栈或自定义拦截器栈中。 在提供的压缩包文件中,`o200952016530.rar`、`testtab.rar`和`struts2用户登录.zip`可能包含了具体实现Tab标签页和Struts2登录功能的源代码、...
在`struts.xml`配置文件中添加拦截器的配置,确保除了`welcome`和`login`方法外,其他所有Action调用均需通过此拦截器的检查。此外,可利用全局转向配置,指定拦截失败时的默认转向页面。 #### 三、代码复用与扩展...
4. **拦截器(Interceptor)**:Struts2的拦截器可以用来增强Action执行前后的功能,比如登录验证。可以创建自定义的拦截器来检查Session中是否有已登录的用户,或者直接在Action中进行验证。 5. **数据验证**:在...
在Struts2中,拦截器需要在struts2.xml文件中进行配置。我们需要在struts2.xml文件中声明我们的拦截器,并将其添加到默认的拦截器栈中。 代码如下: ```xml <!-- 登录拦截器的声明 --> <!-- 声明你已经写好的...
此外,Struts2使用配置文件(如struts.xml)来管理Action、结果和拦截器,使得整个应用的结构清晰可维护。 在MyEclipse中,开发者通常会创建一个Struts2项目,包含src目录、WebContent目录等。源代码通常分布在src...
总结一下,Struts2+CAS的单点登录集成涉及到的主要知识点包括:CAS的工作流程、Struts2框架的拦截器机制、Web应用的过滤器配置以及安全认证的实现。通过这个简单的示例,开发者可以学习如何在自己的项目中实施SSO,...
通过这个简单的登录示例,你可以学习到Struts2的Action、配置、拦截器、表单验证、Session管理、服务层和DAO层的集成,以及错误处理等多个方面,这些都是开发复杂Web应用的基础。同时,这也是一个很好的实践项目,...
2. **配置文件**:Struts2的配置文件(通常是`struts.xml`或`struts-default.xml`)定义了Action类和Action方法之间的映射关系,以及拦截器的配置。在登录场景下,我们需要配置`LoginAction`及其相关操作的结果。 `...