sec: авторизация не работает должным образом с использованием Thymeleaf в загрузочном приложении Spring - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь добавить ссылку на новую строку в таблице, эта ссылка должна быть доступна только для роли ADMIN.

пружинная загрузка: 1.4.0. ВЫПУСК & thymeleaf-extras-springsecurity4.version: 2.1.2.RELEASE

 <sec:authorize access="hasRole('ROLE_ADMIN')">
    <tr>
        <td>...</td>
        <td>...</td>
    </tr>
 </sec:authorize>

Используемые пространства имен:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

WebSecurityConfigAdapter:

http.authorizeRequests()
        .antMatchers("/api/systemuser/*").access("hasRole('ROLE_ADMIN')")
        //.antMatchers("/*").access("hasRole('ROLE_ADMIN')")
        //.antMatchers("/ui/report/win").access("hasRole('ROLE_USER')")
        //.antMatchers("/userError").access("hasRole('ROLE_ERROR')")
        .antMatchers("/swagger*/**", "/about", "/").authenticated()
        .anyRequest().authenticated()
        .and()
        .httpBasic()
        .authenticationEntryPoint(authenticationEntryPoint)
;
http.csrf().disable();

Но с этим кодом даже пользователи без привилегий ADMIN могут просматривать строку таблицы.

Может кто-нибудь помочь мне с дальнейшими действиями?

1 Ответ

0 голосов
/ 03 июля 2018

Должно работать .. Я уверен, что вы добавляете ROLE_ADMIN также этому пользователю. Попробуйте отладить контроллер, который отображает JSP, где вы используете тег, чтобы получить ваш основной объект из аутентификации

  authentication.getPrincipal()

и перемещайтесь по объекту, пока не найдете GrantedAuthority, там проверьте, есть ли у пользователя ROLE_ADMIN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...