現在、次のようなセットアップがあります。
春のセキュリティ.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
。無効なトークンを提供すると、アクセス拒否ページが表示されます。