我正在尝试使用其他登录网站来验证对其他正在运行的spring-security的访问权限,从而创建单一登录。
但是,在连接到我的应用程序时,我无法最初重定向到此备用站点。
我的applicationContext.xml指定如下:
<http entry-point-ref="testProcessingFilterEntryPoint">
<intercept-url pattern="/css/**" filters="none" />
<intercept-url pattern="/login" filters="none" />
<intercept-url pattern="/images/**" filters="none" />
<intercept-url pattern="/favicon.ico" filters="none" />
<intercept-url pattern="/**" access="ROLE_USER" />
<form-login login-page="/login"
authentication-failure-url="/login?login_error=1"
default-target-url="/home"
always-use-default-target="true" />
<logout/>
</http>
<beans:bean id="testProcessingFilterEntryPoint" class="com.test.TESTAuthFilterEntryPoint">
<beans:property name="loginUrl" value="https://example/login.cgi"/>
<beans:property name="startUrl" value="/login.jsp"/>
<beans:property name="otherParams" ref="otherParams"/>
</beans:bean>
<beans:bean id="otherParams" class="com.test.OtherParams">
<beans:property name="pemFile" value="/data/test.pem"/>
<beans:property name="cookieName" value="testCookie"/>
</beans:bean>
<beans:bean id="authenticationProcessingFilter" class="com.test.TESTAuthenticationProcessingFilter">
<beans:constructor-arg index="0" type="java.lang.String" value="" />
<beans:property name="authenticationManager" ref="authenticationManager"/>
<beans:property name="authenticationFailureUrl" value="/login.jsp?login_error=1"/>
<beans:property name="defaultTargetUrl" value="/"/>
<beans:property name="filterProcessesUrl" value="/j_spring_security_check"/>
<beans:property name="otherParams" ref="otherParams"/>
</beans:bean>
<authentication-manager alias="authenticationManager">
<authentication-provider user-service-ref="userDetailsService"/>
</authentication-manager>
基本上我的authenticationProcessingFilter使用定义为:
的类public class TESTAuthenticationProcessingFilter extends AbstractAuthenticationProcessingFilter {
我的testProcessingFilterEntryPoint使用定义为:
的类public class TESTAuthFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
假设要发生的是我应该被重定向到外部站点,通过查看生成的cookie来获得身份验证并处理从此登录生成的信息。最后,只需验证此信息的一部分与数据库中保存的其他信息相关。
但是,当我开始这个时,我没有错误,没有任何错误。它刚刚开始,让我在弹簧安全的标准登录屏幕上。我无法获得初始重定向。它甚至没有在TESTAuthFilterEntryPoint中输入方法
@Override
commence(HttpServletRequest servletRequest, HttpServletResponse....)
就像一个侧面评论一样,它甚至没有触及任何差异,就像一个简约的情况,例如:
<http>
<http-basic/>
<intercept-url pattern="/**" access="ROLE_ADMIN" />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="kass" authorities="ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
仍然进入标准的核心登录界面。