Как предоставить доступ всем прошедшим проверку пользователям?
-
23-08-2019 - |
Вопрос
Необходимо предоставить доступ пользователям без какой-либо роли с помощью Spring Security.Любой, кто использует процесс аутентификации, должен получить доступ к любому URL-адресу.Могу ли я сделать это примерно так или можно как-то иначе?
<http auto-config='true'>
<intercept-url pattern="/**" access="ALL" />
<intercept-url pattern="/login.jsp" filters="none" />
<form-login login-page="/login.jsp" />
</http>
Решение
вы, вероятно, ищете IS_AUTHENTICATED_FULLY или IS_AUTHENTICATED_REMEMBERED или IS_AUTHENTICATED_ANONYMOUSLY.
также проверьте http://www.acegisecurity.org/acegi-security/apidocs/org/acegisecurity/vote/AuthenticatedVoter.html
Другие советы
На самом деле вам просто нужно создать свой собственный AccessDecisionManager и свои собственные AccessDecisionVoter и передать их в блок следующим образом:
<http .... access-decsion-manager="myAccessManager">
.....
</http>
<bean id="myAccessManager" class="org.springframework.security.vote.AffirmativeBased">
<property name="decisionVoters">
<list>
<bean id="myVoter" class=[some subclass of AccessDecisionVoter] />
</list>
</property>
</bean>
Это не 100% решение, но оно должно помочь вам встать на правильный путь.Настройка «автоматической настройки» в Spring Security создает множество этих классов в фоновом режиме и автоматически загружает их, если нет других доступных компонентов правильных классов.