Spring Security Meta Annotation

时间:2011-03-23 08:49:33

标签: java spring annotations spring-security

是否有可能为@PreAuthorize@Component建立Spring Security @Qualifier的Meta Annotatations?

我想要做的是用@PreAuthorize("hasRole('ADMIN')")之类的快捷方式替换@IsAdmin。但我没有在文档中找到任何提示。

3 个答案:

答案 0 :(得分:6)

这至少适用于Spring Security 3.0.2.RELEASE:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('ADMIN')")
public @interface IsAdmin
{
}

答案 1 :(得分:0)

esajs示例是正确的:

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('ADMIN')")
public @interface IsAdmin
{
}

但是由于一些奇怪的,未记录的原因,如果没有在配置中打开proxyTargetClass选项,这将无法在我的Spring Boot(vr 2.1.2.RELEASE)项目中起作用,

@EnableGlobalMethodSecurity(
    prePostEnabled = true,
    proxyTargetClass = true
)

答案 2 :(得分:0)

是的,它已经记录在官方文档(Spring Security 5.1)中:请参见Method Security Meta Annotations

提供了示例:

@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("#contact.name == authentication.name")
public @interface ContactPermission {}