我已经浏览了此页面上的 Spring Security 视频。
在 36:30 左右,他谈到了使用安全注释和方法签名来保护方法,如下所示:
@Secured("ROLE_USER")
public String create();
为什么我们需要将注释与方法一起保留?(因为安全注释与方法的作用没有任何关系)
我可以将这些注释放到一个单独的文件中,以便我可以在不修改实际代码的情况下更改它们吗?(可能使用类似 Spring AOP 功能的东西)
我已经浏览了此页面上的 Spring Security 视频。
在 36:30 左右,他谈到了使用安全注释和方法签名来保护方法,如下所示:
@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 声明是好的。考虑以下情况:
只有 XML 才有可能。
从可读性的角度来看,注释很好。当您看到某种方法时,您可以直接查看所有安全限制。不需要每次都打开一些 XML 文件并考虑表达式(是否适用于这种方法?)。所以很容易。
不要混合使用这两种方法。这太令人困惑了。检查您的需求并为您的项目选择最佳的。