Мне удалось сделать это, внедрив свой собственный UrlAuthenticationFaliureHandler
и программно обработать абсолютные URL-адреса (просто перенаправить сервлет, а затем разорвать цепочку фильтров).
Затем я мог бы внедрить новый FailureHandler в свойпользовательский фильтр, подобный этому:
<bean id="absoluteUrlLoginFailureHandler" class="tld.company.AbsoluteUrlAuthenticationFaliureHandler">
<property name="defaultFailureUrl" value="http://company.domain.tld/Login.html"/>
</bean>
<bean id="absoluteUrlFilter" class="tld.company.MyUserPassFilter">
<property name="authenticationFailureHandler" ref="absoluteUrlLoginFailureHandler"/>
</bean>
И затем я установил этот фильтр в конфигурации пространства имен:
<http auto-config="false" use-expressions="true" entry-point-ref="loginUrlAuthenticationEntryPoint">
<security:intercept-url pattern="/**" access="isAuthenticated() and permitAll" />
<custom-filter position="FORM_LOGIN_FILTER" ref="absoluteUrlFilter" />
</http>
Элемент <entry-point-ref>
, по-видимому, обрабатывает абсолютные URL-адреса по умолчанию.