Избегайте литералов в аннотациях @PreAuthorize Spring boot ELJAVA

Программисты JAVA общаются здесь
Anonymous
Избегайте литералов в аннотациях @PreAuthorize Spring boot EL

Сообщение Anonymous »

В настоящее время я работаю над тем, чтобы избегать литералов внутри аннотаций безопасности. Причина в том, что в больших приложениях, имеющих литералы внутри этих аннотаций, возникает несколько ошибок, а также будет проще реорганизовать имена разрешений.
Я создал @Bean, его цель — зарегистрировать пакеты Enum, которые я хочу затем использовать в аннотациях @Preautorize таким образом @PreAuthorize("hasAuthority(T(Permissions).CREATE)")

Код: Выделить всё

@Bean
static MethodSecurityExpressionHandler methodSecurityExpressionHandler() {
return new DefaultMethodSecurityExpressionHandler() {
@Override
public StandardEvaluationContext createEvaluationContext(Supplier authentication,
MethodInvocation mi) {

StandardEvaluationContext evaluationContext =
(StandardEvaluationContext) super.createEvaluationContext(authentication, mi);
((StandardTypeLocator) evaluationContext.getTypeLocator())
.registerImport(PermissionName.class.getPackage().getName());

return evaluationContext;
}
};
}
но функции T() не могут разрешить разрешения класса.
О технической информации я' Я работаю над Spring Boot 3.2.4.
Если вам нужна дополнительная информация или обсудить это, не стесняйтесь! Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/783 ... ng-boot-el

Вернуться в «JAVA»