Spring SAML ADFS 401未经授权的错误

时间:2018-06-06 11:08:16

标签: spring-security saml-2.0 adfs spring-saml

我在连接到ADFS服务器的spring安全配置中偶然发现401错误。在第一次迭代时,我能够毫无问题地登录到我的java应用程序。从我的Java应用程序注销后,它将我重定向到ADFS登录页面,没有任何问题。在第二次迭代时,应用程序返回401错误,指出用户帐户未经授权。关于这个问题的奇怪之处在于当我突出显示url并按下Enter键时,我能够成功登录到应用程序而没有任何错误。我曾尝试调查我的spring saml配置,web.xml和我的应用程序控制器,但找不到可行的解决方案。我怀疑这与我以前的LDAP配置有关,这也是我的spring安全配置中定义的。我已经迁移到Spring SAML,是否必须删除LDAP身份验证?该问题也适用于会话超时。

我已使用下面的代码段定义了我的spring安全配置。

Spring SAML身份验证:

<authentication-manager alias="authenticationManager">
        <authentication-provider ref="samlAuthenticationProvider" />
    </authentication-manager>

<beans:bean id="samlAuthenticationProvider"
        class="org.springframework.security.saml.SAMLAuthenticationProvider">
        <beans:property name="userDetails" ref="userDetails" />
        <beans:property name="forcePrincipalAsString" value="false" />
    </beans:bean>

<http entry-point-ref="samlEntryPoint">
        <intercept-url pattern="/**" access="IS_AUTHENTICATED_FULLY" />
        <custom-filter before="FIRST" ref="metadataGeneratorFilter" />
        <custom-filter after="BASIC_AUTH_FILTER" ref="samlFilter" />
    </http>

LDAP身份验证:

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider
        ref="ldapAuthProvider" />
</security:authentication-manager>

<bean id="ldapAuthProvider"
        class="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">
        <constructor-arg>
            <bean
                class="org.springframework.security.ldap.authentication.BindAuthenticator">
                <constructor-arg ref="contextSource" />
                <property name="userSearch" ref="hebSearch">
                </property>
            </bean>
        </constructor-arg>
        <constructor-arg ref="authoritiesPopulator" />
        <property name="userDetailsContextMapper" ref="userDetailsMapper" />
    </bean> 

非常感谢任何帮助。

提前致谢!

0 个答案:

没有答案