[英]Implementing CAS with Spring Security 3
我目前已经配置了Spring Security并且可以正常工作。 我想让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页面上进行哪些更改? 任何帮助将非常感激。
谢谢
我想您希望CAS使用您自己的密码+盐编码器对密码进行身份验证。
不幸的是,这不是直接的配置,并且该配置不在您的Spring应用程序中。 您需要重新编译CAS以包括您的自定义密码+盐编码器。 因此,当Spring调用CAS进行身份验证时,将使用相同的自定义密码+盐编码器。
幸运的是,CAS团队创建了WAR Overlay方法,以便用户可以轻松地重新编译CAS服务器以包括自定义密码+盐编码器
您需要非常有耐心地遵循这些步骤,并确保您的系统具有Maven2。您无需下载任何库,因为Maven会解决这一问题。 WAR Overlay方法的基本思想是创建一个maven控制的文件夹,您可以在其中创建子文件夹来添加自定义Java库。
Maven将用于重新编译自定义Java代码以及CAS文件,以生成WAR文件,您可以在其中将其发布到SSL服务器。
只要确保CAS和您的Spring Apps都使用SSL。
祝好运!
这是设置CAS基础结构时建议的步骤
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.