gpt4 book ai didi

spring-security - jasig cas 服务器使用 spring 返回 _cas_stateful_ 作为用户名

转载 作者:行者123 更新时间:2023-12-04 07:03:35 26 4
gpt4 key购买 nike

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

最佳答案

问题是身份验证管理器。正如文档所说,您必须像这样使用 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>

可以看到,自定义的mongoUserDetailsS​​ervice并没有分配给authenticationManager而是新的casAuthenticationProvider,那么我们将casAuthenticationProvider设置为authenticationManager

关于spring-security - jasig cas 服务器使用 spring 返回 _cas_stateful_ 作为用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18398006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com