Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security jasig cas服务器使用spring将_cas_stateful_uu作为用户名返回_Spring Security_Cas_Jasig - Fatal编程技术网

Spring security jasig cas服务器使用spring将_cas_stateful_uu作为用户名返回

Spring security jasig cas服务器使用spring将_cas_stateful_uu作为用户名返回,spring-security,cas,jasig,Spring Security,Cas,Jasig,我正在尝试从spring安全应用程序连接到cas服务器。当我登录CAS时,请求被重定向到我的webapp,但在我的UserDetails服务中,我收到了_CAS_stateful_u作为用户名,我在webapp中找不到我的用户来加载权限问题在于authenticationManager。正如文档所述,您必须像这样使用CasAuthenticationProvider: <beans:bean id="casAuthenticationProvider" class="org.spr

我正在尝试从spring安全应用程序连接到cas服务器。当我登录CAS时,请求被重定向到我的webapp,但在我的UserDetails服务中,我收到了_CAS_stateful_u作为用户名,我在webapp中找不到我的用户来加载权限

问题在于authenticationManager。正如文档所述,您必须像这样使用CasAuthenticationProvider:

<beans:bean id="casAuthenticationProvider"
    class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
    <beans:property name="authenticationUserDetailsService">
        <beans:bean
            class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
            <beans:constructor-arg ref="mongoUserDetailsService" />
        </beans:bean>
    </beans:property>
    <beans:property name="serviceProperties" ref="serviceProperties" />
    <beans:property name="ticketValidator">
        <beans:bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">
            <beans:constructor-arg index="0" value="https://localhost:7443/cas" />
        </beans:bean>
    </beans:property>
    <!-- Esta clave es única por aplicación -->
    <beans:property name="key" value="your-provider-auth" />
</beans:bean>

然后,必须将casAuthenticationProvider设置为authenticationManager:

<authentication-manager alias="authenticationManager">
    <!-- <authentication-provider user-service-ref='mongoUserDetailsService'/>  -->
    <authentication-provider ref="casAuthenticationProvider" />    
</authentication-manager>

如您所见,自定义mongoUserDetailsService未分配给authenticationManager,而是分配给新的casAuthenticationProvider,然后我们将casAuthenticationProvider设置为authenticationManager