Я пытаюсь создать ресурс, к которому могут обращаться как аутентифицированные, так и не аутентифицированные пользователи. У меня также есть аутентификация «помни меня». Для пользователя, обращающегося к ресурсу (странице), я хочу, чтобы аутентификация типа "помни меня" попыталась войти в систему. Если вход не был успешным, я хочу, чтобы страница все еще отображалась, но действовала по-другому. Когда я пишу свои URL-адреса для перехвата безопасности, я могу выбрать «none» или «Role_User». Могу ли я заставить пружину работать так, чтобы она пыталась использовать ROLE_USER, если она не удалась, то она должна постепенно уменьшиться до «None»? Вот как выглядит мой весенний конфиг.
<security:http auto-config='true'>
<security:intercept-url pattern="/dynamicPage" filters="none"/>
<security:intercept-url pattern="/**" access="ROLE_USER" />
<security:form-login login-page="/index"
default-target-url="/home" always-use-default-target="true"
authentication-success-handler-ref="AuthenticationSuccessHandler"
login-processing-url="/j_spring_security_check"
authentication-failure-url="/index?error=true"/>
<security:remember-me key="myLongSecretCookieKey" token-validity-seconds="1296000"
data-source-ref="jdbcDataSource" user-service-ref="AppUserDetailsService" />
</security:http>
Я хочу, чтобы динамическая страница попробовала "Role_User" с аутентификацией "запомнить меня", дождаться сбоя и вернуться к "нет". Есть ли рекомендуемый способ сделать это?
Я узнал не о таких выражениях, как isRememberMe () и о цепочечных выражениях, но я все еще не знаю, как решить эту проблему. Я хочу что-то вроде этого.
<security:intercept-url pattern="/dynamicPage" filters="ROLE_USER,none"/>
Поскольку ни один из них не возвращается запросом getAuthorities, мне нужно найти другой способ сделать это.