Анонимный пользователь не может получить доступ к шаблону URL, который разрешает анонимный доступ - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть следующее как часть конфигурации безопасности Spring.

<security:http auto-config="false" use-expressions="true" entry-point-ref="authEntryPoint" disable-url-rewriting="true">
    <security:intercept-url pattern="/" access="isAnonymous() or isAuthenticated()" />   
    <security:intercept-url pattern="/another-url" access="isAnonymous() or isAuthenticated()" />
    ...
    <security:intercept-url pattern="/**" access="isAuthenticated()" />
</security:http>

Я хочу разрешить любому пользователю доступ к сайту root "/" и запретить все остальные URL

С Приведенная выше конфигурация, когда анонимный пользователь пытается получить доступ к сайту root /, перенаправляет пользователя для входа в систему

Но пользователь может получить анонимный доступ к another-url без проблем.

Эта проблема шаблон URL /** переопределяет / и перенаправляет пользователя для входа в систему.

1 Ответ

0 голосов
/ 04 мая 2020

Сконфигурировал уровень журнала безопасности Spring для отладки и обнаружил, что он пытается соответствовать /index.jsp, когда URL равен /.

После добавления URL-адреса перехвата с шаблоном /index.jsp он начал вести себя как ожидалось.

<security:http auto-config="false" use-expressions="true" entry-point-ref="authEntryPoint" disable-url-rewriting="true">
    <security:intercept-url pattern="/" access="isAnonymous() or isAuthenticated()" />   
    <security:intercept-url pattern="/index.jsp" access="isAnonymous() or isAuthenticated()" /> 
    <security:intercept-url pattern="/another-url" access="isAnonymous() or isAuthenticated()" />
    ...
    <security:intercept-url pattern="/**" access="isAuthenticated()" />
</security:http>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...