Как написать пользовательскую мета -аннотацию, чтобы проверить авторитет при использовании Spring Security?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как написать пользовательскую мета -аннотацию, чтобы проверить авторитет при использовании Spring Security?

Сообщение Anonymous »

У меня есть перечисление со значениями разрешения: < /p>
public enum Permission {
DASHBOARD_OPEN("dashboard:open");

private final String key;

Permission(String key) {
this.key = key;
}

@Override
public String toString() {
return key;
}
}
< /code>
, который я хочу использовать в мета-аннотации: < /p>
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasAuthority('{value}')")
public @interface HasPermission {
Permission value();
}
< /code>
нравится это: < /p>
@HasPermission(DASHBOARD_OPEN)
@RequestMapping({"/dashboard",})
public String dashboard() {
return "dashboard";
}
< /code>
Это не работает, я получаю 403 ошибки, независимо от того, как я пытаюсь это настроить. {value} не работает, {value.key} не работает, и я также попробовал все возможные перестановки. Я проверил, и у моего пользователя есть соответствующий орган. Если я не использую эту мета-аннотация, то моя страница доступна, хотя: < /p>
@PreAuthorize("hasAuthority('dashboard:open')") //
Что я делаю не так? Как я могу сделать Enum решение для решения (в отличие от прохождения строки s)?@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@PreAuthorize("hasRole('{value}')")
public @interface HasRole {
String value();
}


Подробнее здесь: https://stackoverflow.com/questions/797 ... g-spring-s
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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