struts2 使用拦截器 实现用户权限的验证
2010-04-11 11:44
615 查看
1、编写实现拦截验证的类
package iterceptor;
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 AuthorityInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
// 拦截Action处理的拦截方法
public String intercept(ActionInvocation invocation) throws Exception {
// 取得请求相关的ActionContext实例
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
// 取出名为user的Session属性
String user = (String) session.get("username");
// try{
// System.out.println("得到的用户名是: "+user);
// }catch(Exception ex){
// System.out.println("异常: "+ex.toString());
// }
// 如果没有登陆,或者登陆所用的用户名不是scott,都返回重新登陆
if (user != null && user.equals("weiqingli")) {
return invocation.invoke();
}
// 没有登陆,将服务器提示设置成一个HttpServletRequest属性
ctx.put("tip", "您还没有登陆,请输入scott,tiger登陆系统");
// 直接返回login的逻辑视图
return Action.LOGIN;
}
}
2、在struts.xm 配置
<!-- 用户拦截器定义在该元素下 -->
<interceptors>
<!-- 定义了一个名为checkUserLogin的拦截器 -->
<interceptor name="checkUserLogin" class="iterceptor.AuthorityInterceptor"/>
<!--为了在action里面的方便引用,做成拦截器堆栈 -->
<interceptor-stack name="checkUserLogin_stack">
<!-- 应用默认拦截器堆栈 一定要有 -->
<interceptor-ref name="defaultStack" />
<!-- 应用自定义拦截器 -->
<interceptor-ref name="checkUserLogin" />
</interceptor-stack>
</interceptors>
3、在需要验证身份的action里,使用拦截器
<!-- 需要登录权限的页面 -->
<action name="main" class="com.qili.Main" method="main">
<!-- 使用自定义拦截器 -->
<interceptor-ref name="checkUserLogin_stack"></interceptor-ref>
<result name="success" type="freemarker">/ftl/main.html</result>
</action>
4、配全局结果,结果为 login的转正,都指向登录页
<global-results>
<result name="login" type="redirect">login.jsp</result>
</global-results>
5、实现下载
下载 http://download.csdn.net/source/2227130
package iterceptor;
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 AuthorityInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
// 拦截Action处理的拦截方法
public String intercept(ActionInvocation invocation) throws Exception {
// 取得请求相关的ActionContext实例
ActionContext ctx = invocation.getInvocationContext();
Map session = ctx.getSession();
// 取出名为user的Session属性
String user = (String) session.get("username");
// try{
// System.out.println("得到的用户名是: "+user);
// }catch(Exception ex){
// System.out.println("异常: "+ex.toString());
// }
// 如果没有登陆,或者登陆所用的用户名不是scott,都返回重新登陆
if (user != null && user.equals("weiqingli")) {
return invocation.invoke();
}
// 没有登陆,将服务器提示设置成一个HttpServletRequest属性
ctx.put("tip", "您还没有登陆,请输入scott,tiger登陆系统");
// 直接返回login的逻辑视图
return Action.LOGIN;
}
}
2、在struts.xm 配置
<!-- 用户拦截器定义在该元素下 -->
<interceptors>
<!-- 定义了一个名为checkUserLogin的拦截器 -->
<interceptor name="checkUserLogin" class="iterceptor.AuthorityInterceptor"/>
<!--为了在action里面的方便引用,做成拦截器堆栈 -->
<interceptor-stack name="checkUserLogin_stack">
<!-- 应用默认拦截器堆栈 一定要有 -->
<interceptor-ref name="defaultStack" />
<!-- 应用自定义拦截器 -->
<interceptor-ref name="checkUserLogin" />
</interceptor-stack>
</interceptors>
3、在需要验证身份的action里,使用拦截器
<!-- 需要登录权限的页面 -->
<action name="main" class="com.qili.Main" method="main">
<!-- 使用自定义拦截器 -->
<interceptor-ref name="checkUserLogin_stack"></interceptor-ref>
<result name="success" type="freemarker">/ftl/main.html</result>
</action>
4、配全局结果,结果为 login的转正,都指向登录页
<global-results>
<result name="login" type="redirect">login.jsp</result>
</global-results>
5、实现下载
下载 http://download.csdn.net/source/2227130
相关文章推荐
- struts2通过拦截器实现用户权限验证
- Spring MVC 使用拦截器优雅地实现权限验证功能
- 拦截器实现用户权限验证
- SSH学习——Struts2拦截器实现登录权限验证
- 使用Struts2的拦截器实现权限控制
- Spring MVC 使用拦截器优雅地实现权限验证功能
- 使用Struts2的拦截器实现权限控制
- Spring MVC 使用拦截器优雅地实现权限验证功能
- struts2如何使用拦截器进行用户权限控制
- Struts2中使用拦截器 Interceptor 登陆权限验证
- struts2如何使用拦截器进行用户权限控制实例
- struts2 使用注解、反射、拦截器实现基于方法的权限控制
- Struts2使用拦截器完成权限控制示例
- 在struts2中使用拦截器(Interceptor)控制登录和权限
- 通过自定义注解或拦截器实现APP调用后接口全局权限验证
- webservice使用拦截器进行权限验证
- Struts2使用过滤器和拦截器进行简单权限校验
- struts2使用拦截器完成登陆显示用户信息操作和Struts2的国际化
- asp.net继承page类重写方法 实现最基本的用户登录验证 权限验证等
- JAX-WS使用Handler实现简单的WebService权限验证