Shiro权限管理

    Shiro权限管理
一.权限管理的四张核心的表关系
  用户表
      用户-角色-关系表
  角色表
      角色-权限-关系表
  权限表
      角色-菜单-关系表
  菜单表

二.权限的控件
    粗粒度
        配置文件配置
    细粒度
        通过注解实现

三.了解认证和授权的流程
    前端发起登录请求---访问shiro的subject---subject.login(token)---SecurityManager安全管理器----自定义的realm----数据库
    整合shiro与spring配置:

    1. 导入pom坐标
       <dependency>
         <groupId>org.apache.shiro</groupId>
         <artifactId>shiro-all</artifactId>
         <version>${shiro.version}</version>
       </de pendency>
    2. 配置web.xml
      <filter>
       <!-- 去spring配置文件中寻找同名bean -->
       <filter-name>shiroFilter</filter-name>
        <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
      </filter>
      <filter-mapping>
       <filter-name>shiroFilter</filter-name>
       <url-pattern>/*</url-pattern>
      </filter-mapping>

    注意:该配置 配置 在struts2的过滤前面
    3.配置applicationContext-shiro.xml
       a.配置shiroFilter,用于配置粗粒度权限

         <!--配置Shiro核心Filter -->
      <bean id="shiroFilter" 
       class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
       <!-- 安全管理器 -->
       <property name="securityManager" ref="securityManager" />
       <!-- 未认证,跳转到哪个页面      -->
       <property name="loginUrl" value="/login.html" />
       <!-- 认证后,没有权限跳转页面 -->
       <property name="unauthorizedUrl" value="/unauthor.html" />

       <!-- shiro URL控制过滤器规则  -->
       <property name="filterChainDefinitions">
         <value>
           /login.html* = anon
           /css/** = anon
           /js/** = anon
           /upload/** = anon
           /images/** = anon
           /user_login.action* = anon
           /test_Author.action* = perms[user:author]
           /test_has_role.action* = roles[user]
           /** = authc
         </value>
       </property>
      </bean>

               anon 未认证可访问的资源
               authc 认证后才可访问的资源
               /* 和 /**  前者是 当前文件路径或文件夹中的所有请求

               perms 权限列表
               roles 角色列表
               b. 配置 安全管理 器
     <bean id="securityManager" 
       class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
       <property name="realm" ref="bosRealm" />
      </bean>
                 c. 配置自定义的realm
                 @Service("RealmName")

           @Override
           //认证
           protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token);
                  4、生命周期(固定代码)
     <bean id="lifecycleBeanPostProcessor"
       class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

        四.如何测试?
        在applicationContext-shiro.xml中,对shiroFilter进行配置
        1. /**=authc  所有请求必须在登录成功之后才可以访问
        2. 直接在浏览器中随便输入一个访问当前工程的URL,如果直接跳转到login.html,则表示Shiro的框架整合成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值