Как перенаправить запрос на страницу входа при сбое preauth в весенней безопасности? - PullRequest
0 голосов
/ 20 декабря 2018

Я настроил Spring Security XML для предварительной авторизации на основе заголовка сайта minder.Если запрос не содержит заголовка сайта minder или информация о пользователе не указана в заголовке сайта minder, я хочу, чтобы запрос был перенаправлен на страницу входа по умолчанию.Я попытался расположить фильтры по порядку, но не смог заставить это работать. Я попытался поставить точку http403entry, но не смог заставить ее работать.Вот XML, который у меня есть для выполнения предварительной проверки с помощью токена siteminder.Что еще нужно добавить к этому, чтобы перенаправить запрос на страницу входа?

<sec:http use-expressions="true"  auto-config="true">
        <sec:intercept-url pattern="/login.jsp" access="permitAll" />
             <sec:intercept-url pattern="/index.jsp" access="isAuthenticated()" />
            <sec:form-login login-page="/login.jsp"  
                login-processing-url="/j_spring_security_check"
                default-target-url="/index.jsp" 
                authentication-failure-url="/login?error" 
                username-parameter="username"
                password-parameter="password" />
            <sec:logout invalidate-session="true" logout-success-url="/login.jsp?logout"  />
            <sec:csrf disabled="false"/>
            <sec:custom-filter before="PRE_AUTH_FILTER" ref="siteminderFilter" /> 
            <sec:session-management>
                <sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="false"  expired-url="/login.jsp" />
            </sec:session-management>
</sec:http>



<beans:bean id="siteminderFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter">
        <beans:property name="principalRequestHeader" value="myemailaddress"/>
                <beans:property name="authenticationManager" ref="authenticationManager">
                </beans:property>
</beans:bean>



<sec:authentication-manager alias="authenticationManager">
      <sec:authentication-provider ref="preauthAuthProvider" /> 
</sec:authentication-manager> 




 <beans:bean id="preauthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
        <beans:property name="preAuthenticatedUserDetailsService">
            <beans:bean id="userDetailsServiceWrapper"  class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
                <beans:property  name="userDetailsService" ref="customUserDetailsService"/>
            </beans:bean>
        </beans:property>
</beans:bean>


<beans:bean id="customUserDetailsService" class="com.test.CustomUserDetailsService"></beans:bean>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...