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”>
发表回复