Мой вариант использования:
У меня будет много @PreAuthorize
аннотаций в форме @PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")
.
Я хотел бы создать метааннотацию @HasAuthority
, которая принимает авторитет в качестве значения и передать его @PreAuthorize("hasAuthority(<value>)")
.
Такое чувство, что это невозможно. Самое близкое к тому, что я хочу, - это что-то вроде аннотации @AliasFor
. но проблема в том, что я не могу ничего добавить к значению, которое получу в @HasAuthority
. Поэтому мне придется каждый раз повторять часть hasAuthority.
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority('RESPECT_MY_AUTHORITY')")
public @interface HasAuthority {
@AliasFor(annotation = PreAuthorize.class, attribute = "value")
String value();
}
Мне бы хотелось что-то вроде:
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority(#value)")
public @interface HasAuthority {
String value();
}
Любая идея, как я могу это сделать, или если это вообще возможно