Заблокировать доступ пользователя через URL - PullRequest
0 голосов
/ 08 мая 2018

У меня есть страница настроек в моем приложении.

Это должно быть настроено только администратором, поэтому я заблокировал страницу у обычного пользователя.

  <security:authorize access="hasAuthority('Administrator')">
    <li id="settings">
        <a href="/settings">
            <img src="../resources/img/icons/10.png" alt="" class="menuIcon">
            <span class="menu-title">Settings</span>
        </a>
    </li>
    </security:authorize>

Хорошо работает. Пользователь не видит страницу. Проблема в том, что если он получает доступ к /settings, он может видеть страницу без проблем.

Я хочу показать ему запрещенную страницу. есть идеи как это сделать? ТНХ

1 Ответ

0 голосов
/ 08 мая 2018

Spring security позволяет вам расширить org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter, который вы можете прекрасно использовать с весенней загрузкой, например:

, например

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .mvcMatchers("/settings").hasAuthority("Administrator");
    }
}

Если предположить, что ваш Принципал проходит проверку подлинности и помещен в контекст безопасности Spring, это должно вызвать обработчик отказа в доступе.

Вы можете настроить это следующим образом:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(final HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .mvcMatchers("/settings").hasAuthority("Administrator").and()
                .exceptionHandling()
                .accessDeniedPage(...)
                .accessDeniedHandler(...)

    }
}

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

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