乐趣区

关于java:shiro篇开启常见的注解

  shiro 常见的注解:    (注:倡议将 shiro 注解放入 controller,因为如果 service 层应用了 spring 的事物注解,那么 shiro 注解将有效,如果 spring 管控了 filter 还是 Interceptor,怎 controller 层有效,此时能够放在 service 层试试 )

    @RequiresAuthentication:

应用该注解标注的类,实例,办法在拜访或调用时,以后 Subject 必须在以后 session 中曾经过认证。

@RequiresGuest:

应用该注解标注的类,实例,办法在拜访或调用时,以后 Subject 能够是“gust”身份,不须要通过认证或者在原先的 session 中存在记录。

@RequiresPermissions:

以后 Subject 须要领有某些特定的权限时,能力执行被该注解标注的办法。如果以后 Subject 不具备这样的权限,则办法不会被执行。

@RequiresRoles:

以后 Subject 必须领有所有指定的角色时,能力拜访被该注解标注的办法。如果当天 Subject 不同时领有所有指定角色,则办法不会执行还会抛出 AuthorizationException 异样。

 @RequiresUser:

        以后 Subject 必须是利用的用户,能力拜访或调用被该注解标注的类,实例,办法。

在 application.xml 或者 shiro.xml 外面进行配置,纯注解的形式请疏忽上面的代码一 和 代码二

代码一、

      <!-- 开启 shiro 的注解反对 --> 
<bean id="defaultAdvisorAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"> 
    <!-- 必须改为 true,即应用 cglib 形式为 Action 创立代理对象。默认值为 false,应用 JDK 创立代理对象,会造成问题 --> 
    <property name="proxyTargetClass" value="true"></property> 
</bean> 
<!-- 应用 shiro 框架提供的切面类,用于创立代理对象 --> 
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"></bean> 
 ~~~
 
代码二、

<!– 开启 shiro 的注解反对 –> 
<bean class=”org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator” depends-on=”lifecycleBeanPostProcessor”/>  
 <bean class=”org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor”>  

退出移动版