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”>