У меня есть приложение загрузки весны, для которого я пытаюсь реализовать специальную схему авторизации, расширяющую стандарт @RolesAllowed
.spring-boot расширенная авторизация
Я создал обычай AccessDecisionManage
r, который читает @RolesAllowed
, и если есть аргумент, аннотированный моей пользовательской аннотацией, я проверю, имеет ли пользователь указанную роль в указанной области.
@RequestMapping(value = "/{id}/user/list", method = RequestMethod.GET)
@RolesAllowed("manager")
public List<User> userList(@PathVariable("id") @AuthScope Project project) throws NotFoundException {
return projectService.findUsersByProject(project);
}
Я реализовал AccessDecisionManager
с логикой, необходимой для моей пользовательской схемы авторизации теперь я не может настроить свою безопасность приложений, чтобы использовать эту AccessDecisionManager
.
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.accessDecisionManager(accessDecisionManager())
.anyRequest().permitAll()
.and()
.csrf()
.disable()
.httpBasic();
}
Здесь ошибка я получаю:
AccessDecisionManager does not support secure object class: class org.springframework.security.web.FilterInvocation
Любые идеи о том, что я делаю неправильно? Приветствия
Вам действительно нужны заказные материалы. Разве это не то, что вы могли бы сделать с аннотацией @ @ Secured с помощью какой-то магии EL? –
Или использовать авторизацию Sprnig Security 'Pre/Post'. –
Я понимаю, что то, что я хочу сделать, может быть выполнено либо: -acessDecisionManager; -pre-post-annotations; -объявленные аннотации; Проблема заключается в том, что я должен выполнить свою собственную авторизацию либо на accessDecisionManager, как сейчас, либо изменить эту логику на @Secured или предварительно опубликовать аннотации. В конце концов я должен настроить свою безопасность приложения, чтобы использовать эту логику, это моя проблема прямо сейчас. – danielgmarcos