SSH中的权限拦截器

来源:互联网 发布:android编程权威指南3 编辑:程序博客网 时间:2024/05/18 13:48

        拦截器,曾经好像听说过你的名字,好神秘的样子,不知道你的容颜是怎样的动人?

        在百度的搜素引擎里敲下“拦截器”,好像你没有在百度百科中里出现,好像更增加了你的一份神圣感。

        终于,广西下雪了广东也下雪了,南方的人们揭开了雪菇凉的神秘面纱,是怎样的兴奋与雀跃。前一段时间做了一个Java的项目中,终于亲临触摸了你的或许是部分的真实。


        可以简单地理解:用户必须登录了才能操作系统,必须是登录的用户才能进入后台进行维护;拦截器,可以对Action的访问进行拦截,对没有登录的用户不能进行访问,这样保证了系统的安全性。

        那么如何编写拦截器,如何实现拦截功能呢?

        1.编写一个类实现Interceptor接口,或是集成Interceptor的子类;

        2.接下来就是配置拦截器了。

        先编写一个拦截器类:

/** * 后台权限校验的拦截器 * 对没有登录的用户,不可进行访问的 * @author zhuoling * */public class PrivilegeInterceptor extends MethodFilterInterceptor{@Override//执行拦截器的方法protected String doIntercept(ActionInvocation actionInvocation) throws Exception {//判断session中保存了后台用户的信息:AdminUser existAdminUser=(AdminUser)ServletActionContext.getRequest().getSession().getAttribute("existAdminUser");if (existAdminUser ==null ) {//没有登录进行访问ActionSupport actionSupport=(ActionSupport) actionInvocation.getAction();actionSupport.addActionError("亲!您还没有登录!没有权限访问!");return "loginFail";}else{//已经登录过,登录过的就直接放行 return actionInvocation.invoke();}}}

        拦截器写好后在Struts中配置,先定义拦截器:

<span style="white-space:pre"></span><interceptors>  <span style="white-space:pre"></span><interceptor name="PrivilegeInterceptor" class="cn.itcast.shop.interceptor.PrivilegeInterceptor"/>    </interceptors>

        然后在后台使用拦截器,在需要的页面中Struts中配置拦截器:

<span style="white-space:pre"></span><interceptor-ref name="PrivilegeInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref>
      如图:

      如果没有登录就不能访问后台,也不能通过地址直接进入后台:


      对于拦截器是不是有了个相对的概念,是不是也能就解释一部分疑惑:为什么不登录看不到信息实现原理。

      对于她的学习还需要进一步的深入,如果你有她的信息与我分享哦。

0 0
原创粉丝点击