Spring security Spring安全性:将方法安全性注释移出代码
我看了春季安全视频 大约36:30,他谈到了使用安全注释和方法签名保护方法,如下所示:Spring security Spring安全性:将方法安全性注释移出代码,spring-security,Spring Security,我看了春季安全视频 大约36:30,他谈到了使用安全注释和方法签名保护方法,如下所示: @Secured("ROLE_USER") public String create(); 为什么我们需要将注释与方法一起保留?(因为安全注释与方法的功能无关) 我可以把这些注释放到一个单独的文件中,这样我就可以在不修改实际代码的情况下修改它们吗?(可能使用类似Spring AOP的功能)是的,多亏了Spring AOP,您才可以做到这一点: <global-method-security>
@Secured("ROLE_USER")
public String create();
为什么我们需要将注释与方法一起保留?(因为安全注释与方法的功能无关)
我可以把这些注释放到一个单独的文件中,这样我就可以在不修改实际代码的情况下修改它们吗?(可能使用类似Spring AOP的功能)是的,多亏了Spring AOP,您才可以做到这一点:
<global-method-security>
<protect-pointcut expression="execution(* com.domain.service.*.*(..))" access="ROLE_USER"/>
</global-method-security>
一个符合你需要的表达
XML声明从灵活性的角度来看很好。考虑以下情况:
- 您希望在两个模块中重用某些服务,但希望有不同的安全规则李>
- 您希望对每个包应用一些安全限制
不要将两种方法混用。太令人困惑了。检查您的需求并选择最适合您的项目。感谢您的详细回复。如果我在Spring项目中使用Shiro,我还可以使用Spring AOP删除方法安全性注释吗?我对ApacheShiro没有经验,所以我不知道。但我相信这一定是可能的。您可能需要用一些更低级的SpringAOPXML重写这个SpringSecurityXML。或者可能是ApacheShiro提供了类似的现成功能。