shiro

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
        <property name="securityManager" ref="securityManager"/>
        <property name="loginUrl" value="/login"/>
        <property name="unauthorizedUrl" value="/nopermission.jsp"/>
        <property name="filterChainDefinitions">
            <value>
                /logout=logout
                /**=authc
            </value>
        </property>
   </bean>

<--shiro过虑器,DelegatingFilterProx会从spring容器中找shiroFilter -->
<filter>
<filter-name>shiroFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
<init-param>
<param-name>targetFilterLifecycle</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 

filter-name和ShiroFilterFactoryBean的名字保持一致

<!-- 开启aop,对类代理 -->
    <aop:config proxy-target-class="true"></aop:config>
    <!-- 开启shiro注解支持 -->
    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
        <property name="securityManager" ref="securityManager" />
    </bean>

对于权限注解的使用,使用编程方式的话,就是在方法里面进行判断,这样不好,而用jsp标签进行权限控制,就相当于使用JSTL标签库中的if,没有权限就不给显示,但是这样直接在URL中输入目标地址还是可以访问,使用注解是最好的

使用注解注意三点,注解本身,被贴的程序元素,第三方程序的参与,<aop:config proxy-target-class="true"></aop:config> 就是对类做代理,org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor就是支持shiro注解的类

  

posted @ 2019-04-21 17:55  侯小铁柱  阅读(235)  评论(0)    收藏  举报