shrio理解:

来源:互联网 发布:白板软件下载 编辑:程序博客网 时间:2024/05/19 07:27
shrio理解:
(1)在web.xml中通过监听的方式集成shrio,代理的过滤器和配置文件
                (2)配置shrio主配置文件中:
     主配置:shrio的过滤工厂类:
         注入安全管理器复写:登陆时调用用户信息的方法
                    登录成功后,查询数据库角色权限,给当前用户授权
    以及一个工具类,在登录验证方法中,返回token后setSession信息(能返回token就是验证成功)
                         (主要负责登录发起验证请求,及成功之后的系列过程中方法)
         注入带有生成token,验证通过,未验证同过方法的滤器,在有用户尝试登陆的时候,会自动拦截生成token对象,验证通过,未通过自动调用的方法
(主要是预前,善后方法)
分别对应登录成功,登录失败,初始访问系统的一些相关属性,类似struts的拦截跳转
(主要对应结果)
        (3)spring的方法反射调用共场(指定权限验证时使用的安全管理器)(xml中指定,之后这里也要指定的安全管理器)



整个过程:
启动服务器,通过web.xml文件,加载shrio,访问是自动拦截跳转到过滤工厂指定的login页面,
发起登录请求(输入用户名,密码等)后拦截调用安全管理器的登录方法,善后过滤器会事先生成一个token信息对象,一旦登录成功,调用角色,权限的赋予方法,然后调用配置的带有善后工作的过滤器
(配置在shrio过滤器工厂类的最后),发出放行指令,结合shrio过滤器工厂类的跳转配置,跳转,否则,善后过滤器调用拒绝登录方法,发出拒绝的跳转指令此时结合配置跳转,类似还有拒绝认证(无权限)
访问单个页面的指令



下面的只要是方法(bean)级别的控制

  <!-- 保证实现了Shiro内部lifecycle函数的bean执行 --> 
    <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/> 
 
    <!-- 开启Shiro的注解(如@RequiresRoles,@RequiresPermissions),需借助SpringAOP扫描使用Shiro注解的类,并在必要时进行安全逻辑验证 --> 
    <!-- 配置以下两个bean即可实现此功能 --> 
    <!-- Enable Shiro Annotations for Spring-configured beans. Only run after the lifecycleBeanProcessor has run --> 
    <!-- 这里未使用Shiro注解,故注释掉这两个bean(个人觉得将权限通过注解的方式硬编码在程序中,查看起来不是很方便,没必要使用) --> 
    <!--  
    <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"/> 
    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> 
        <property name="securityManager" ref="securityManager"/> 
    </bean> 
     -->
                
0 0
原创粉丝点击