Я использую пользовательский UserDetailService, который отлично работает для аутентификации.Проблема в том, что я не могу использовать ограничения на основе ролей.
Странно, что я получаю правильные права доступа от контроллера:
public ModelAndView getMembers(HttpServletRequest request, Authentication auth)
{
if(auth != null)
{
for (GrantedAuthority ga : auth.getAuthorities())
{
// works find and logs "ADMIN", btw. I'm using SimpleGrantedAuthority
this.logger.debug("0{}", ga);
}
}
}
Но с конфигурацией
http
.csrf().disable()
.authorizeRequests()
.antMatchers("/Admin/**").hasRole("ADMIN")
…
Пользователь не может получить доступ к страницам, например, /Admin / Member.
То же самое относится и к тими-лист-тегам безопасности, например,
<div sec:authorize="isAuthenticated() && hasRole('ADMIN')">Hello Admin!</div>
не показывает "Hello Admin!"для пользователей, у которых контроллер регистрирует полномочия "ADMIN".
Я предполагаю, что что-то упустил или что-то не так.
Спасибо за ваше время и помощь.