shiro 注解不起作用

在学习shiro的过程中遇到了一个问题,使用注解方式没有起作用如下:

在service层

@RequiresRoles({"admin"})
	public void testMethod(){
		System.out.println("aaabbb");
	}

或者在 如下在Control层

@RequestMapping("testShiroService")
	/**
	 * @RequiresRoles 是shiro的注解,表示需要有admin角色
	 */
	@RequiresRoles({"admin"})
	public String testShiroService(){
		shiroServcie.testMethod();
		return "redirect:/home.jsp";
	}

 加入了@RequiresRoles({"admin"})注解,这个意思是只有授权admin这个角色时才能执行。但是真实测试时user角色时也能执行。

网上说需要配置开启注解,我也配置了,但是还是不起作用

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
          depends-on="lifecycleBeanPostProcessor" >
    	 <property name="proxyTargetClass" value="true" />   
    </bean>
    <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
        <property name="securityManager" ref="securityManager"/>
    </bean>

在另一文章中看到,说将上边的配置放在spring-mvc.xml的文件中,不是放在spring.xml文件中,所以就按照这个试了试,果然可以了。 特此记录下

 另外附上学习shiro的一个源码,供以后参考

猜你喜欢

转载自1960370817.iteye.com/blog/2404490