我目前已配置弹簧安全性并正常工作。我想让 CAS 工作,这样我就可以在我编写的多个应用程序中进行单点登录。我很困惑如何让 cas 使用我的自定义 userdetailService。
目前我有这是我的 spring-security.xml
<authentication-manager alias="authManager">
<authentication-provider user-service-ref="userDetailsService">
<password-encoder ref="passwordEncoder">
<salt-source ref="saltSource"/>
</password-encoder>
</authentication-provider>
</authetication-manager>
从我发现的所有 cas 示例中,他们说要以这种方式实现管理:
<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="userDetailsService"/>
</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:8443/cas"/>
</beans:bean>
</beans:property>
<beans:property name="key" value="1234554321"/>
</beans:bean>
<authentication-manager alias="authManager">
<authentication-provider ref="casAuthenticationProvider"/>
</authentication-manager>
文档令人困惑。如何从一个工作的 spring-security 应用程序转到一个实现 cas 并仍然使用我的自定义用户详细信息的应用程序?我还需要在 jsp 页面上进行哪些更改?任何帮助将非常感激。
谢谢