Как разрешить анонимному пользователю доступ с локального хоста только в безопасности Spring? - PullRequest
3 голосов
/ 14 июня 2019

Я хочу разрешить только запросы от localhost для определенного шаблона URL. Я пробовал это до сих пор:

<sec:intercept-url pattern="/blabla/**" access="hasIpAddress('127.0.0.1')" />

Но это не работает, и я получил следующее утверждение в выводе журнала:

Access is denied (user is anonymous); redirecting to authentication entry point

Итак, мой вопрос: как мне разрешить анонимному пользователю доступ только с localhost?

Ответы [ 2 ]

2 голосов
/ 14 июня 2019

Можно ли выразить это и () отношение в конфигурации на основе XML?

Согласно документации здесь https://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html ниже должно работать.

Здесь мы определили, что область «blabla» приложения (определяемая шаблоном URL) должна быть доступна только анонимным пользователям, чей IP-адрес соответствует 127.0.0.1.

    <sec:intercept-url pattern="/blabla/**"
        access="isAnonymous() and hasIpAddress('127.0.0.1')"/>
2 голосов
/ 14 июня 2019

Взгляните на метод HttpSecurity::anonymous, включающий и обеспечивающий AnonymousConfigurer<H extends HttpSecurityBuilder<H>> конфигурацию анонимной аутентификации.

В вашем классе конфигурации Spring Security должен быть метод переопределения:

@Override
public void configure(HttpSecurity http) throws Exception {
    http.and()
        .anonymous()...          // enables and configures the anonymous access
    .and()
        .authorizeRequests()...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...