拦截验证每个请求的权限
来源:互联网 发布:linux oracle删除监听 编辑:程序博客网 时间:2024/05/16 18:08
前面做的虽然在界面内看不见没有权限的链接 但可以直接在地址栏输入链接进行访问,所以我们这里要使用拦截器拦截每个访问action的请求
1.struts配置
<package name="default" namespace="/" extends="struts-default"><!-- 声明拦截器 --><interceptors ><interceptor name="CheckPrivilege" class="cn.itcast.oa.Utils.CheckPrivilegeInterceptor"></interceptor><!-- 定义拦截器栈 --><interceptor-stack name="MyStack"> <interceptor-ref name="CheckPrivilege"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack></interceptors><!-- 定义默认拦截器栈 --> <default-interceptor-ref name="MyStack"></default-interceptor-ref><!-- 配置全局 result --><global-results><result name="loginUI">/WEB-INF/jsp/userAction/loginUI.jsp</result><result name="noPrivilegeError">/noPrivilegeError.jsp</result></global-results>2.实现拦截器类
public class CheckPrivilegeInterceptor implements Interceptor {public String intercept(ActionInvocation invocation) throws Exception {/* * System.out.println("拦截之前 "); String result = invocation.invoke(); * System.out.println("拦截之后 "); */// 获取信息 当前登录用户 要访问的 权限User user = (User) ActionContext.getContext().getSession().get("user");// ***************************************String nameSpace = invocation.getProxy().getNamespace();String ActionNanme = invocation.getProxy().getActionName();String privUrl = nameSpace + ActionNanme;// 对应的权限Url// 1.是否等录 未登录就转到登录界面if (user == null) {if (/* 准备去登录 ,就放行 /user_loginUI /user_login */privUrl.startsWith("/user_login")) {return invocation.invoke();} elsereturn "loginUI";}// 登若录 是否有权限else {// 有权限 放行if (user.hasPrivilegeByUrl(privUrl)) {return invocation.invoke();}// 无权限 转到提示界面else {return "noPrivilegeError";}}}public void destroy() {// TODO Auto-generated method stub}public void init() {// TODO Auto-generated method stub}}
这里还有一点问题就是 对首页的访问 home_index.action 以及注销的action 等访问也被拦截了,比如张三登录了,本应该跳到首页,但这个action实现没被安装到(初始化的)权限表中,所以会直接跳到无权访问的错误页面。。。。。下一篇我们在探讨怎么把这些基本的权限 赋予每个人。
1 0
- 拦截验证每个请求的权限
- angular 拦截器每个请求传递用户的token
- 权限框架中拦截webService请求的思考
- 权限拦截器 用户信息验证
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- 基于 Annotation 拦截的 Spring AOP 权限验证方法
- java 使用拦截器统计每个http请求的响应时间
- Struts2自定义拦截器实例—登陆权限验证(两种方式的拦截)
- 权限的拦截
- Struts2 权限验证 ---拦截器和过滤器
- struts2 拦截器验证权限
- struts2 拦截器 登录权限验证
- webservice使用拦截器进行权限验证
- Struts2案例--开发权限验证拦截器
- sparingmvc自定义拦截器做权限验证
- Linux Sed 使用示例
- 今天我要开始写博客了。
- OpenCV 绘图与其他图像操作
- 软考之路(六)---数据库---深入浅出 三层模式两级映像
- 你可能不知道的30个Python语言的特点技巧
- 拦截验证每个请求的权限
- BFS/DFS算法介绍与实现
- STUN和TURN技术浅析
- 应学会接受
- pecl, pear, perl 的区别
- P2P实现的原理
- 学习笔记:数据结构(一)
- springMVC 接受前台 jquery ajax 发送的 字符串和 数组
- 不仅仅是码农