В настоящее время у меня есть установка, которая выглядит примерно так:
пружина -security.xml:
<http auto-config="true">
<intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login"
default-target-url="/main.html"
authentication-failure-url="/failedLogin"/>
<logout logout-url="/logout.html" logout-success-url="/login" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="foo" password="bar" authorities="ROLE_USER" />
</user-service>
</authentication-provider>
</authentication-manager>
web.xml:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Все это, кажется, работает так, как ожидалось, однако в особых ситуациях я хочу, чтобы страница входа не использовалась, если пользователь передает специальный токен. Итак, в настоящее время, если пользователь перейдет по URL-адресу, такому как /dog
, он увидит страницу входа, а если он передаст учетные данные foo/bar
, то он войдет в систему и увидит страницу, соответствующую /dog
.
Мне нужна возможность использовать URL-адрес, такой как /dog?token=abcd
, который будет обходить экран входа в систему и переводить их непосредственно на страницу, соответствующую /dog
. Если они предоставят недействительный токен, они просто увидят страницу с отказом в доступе.