总结play中使用cas进行sso认证
?
使用指令生成证书
./keytool -genkey -alias examplecas -keypass changeit -keyalg RSA -keystore server.keystore
?
?
配置完成
?
生成服务端
keytool -genkey -alias mykey -keyalg RSA -keystore server.keystore
生成客户端
keytool -export -file client.crt -alias mykey -keystore server.keystore ?把client.crt复制到客户机
此证书所有客户端通用
输入密码如:111111
安装tomcat6
在根目录中加入keystore文件夹
如E:\apache-tomcat-6.0.32\keystore
拷贝 server.keystore 进keystore中
配置服务器端tomcat 6.0(conf/server.xml)
??? 打开被注释掉的https配置区,添加keystoreFile,keystorePass,truststoreFile属性配置。
?
服务器端cas-server-3.4.6-release ?下载http://www.jasig.org/cas/download
cas-server-3.4.6-release\cas-server-3.4.6\modules\cas-server-webapp-3.4.6.war
解压到tomcat6目录下 ?自解压
在cas\WEB-INF\spring-configuration 目录中applicationContext.xml
文件中加入
<bean id="dataSource" value="com.mysql.jdbc.Driver"/>
??????? <property name="url" value="jdbc:mysql://localhost:3306/biz_deploy_100"/>
??????? <property name="username" value="bizgame" />
??????? <property name="password" value="bizgame" />
</bean>
在lib中加入mysql驱动
打开deployerConfigContext.xml
修改
??<bean
?????/>
为
<bean value="select md5password from sso_user where loginname=?" />?
??????????? <property name="dataSource" ref="dataSource" />?
复制cas-server-support-jdbc-3.4.6.jar?进 lib中
系统完成,启动tomcat
?
?
?
客户端 play? cas-3.0 ?参考?http://www.playframework.org/modules/cas-3.0/home
安装 play ?install cas-3.0
?
route中的配置
# import these default routes as :
# * ? ? ? ? / ? ? ? ? ? ? ? module:logisima-cas
#
?
GET ? ? ? ? /login ? ? ? ? ? modules.cas.SecureCAS.login
GET ? ? ? ? /logout ? ? ? ? modules.cas.SecureCAS.logout
GET ? ? ? ? /authenticate ? modules.cas.SecureCAS.authenticate
GET ? ? ? ? /pgtcallbackurl modules.cas.SecureCAS.pgtCallBack
?
application.conf中的配置
?
#############################################################
# CAS CONFIGURATION
#############################################################
#module.cas=E:/play-1.1/modules/cas-3.0
module.cas=${play.path}/modules/cas-3.0
cas.validateUrl=https://xxx.xx.121.243:8443/cas/serviceValidate
cas.loginUrl=https://xxx.xx.121.243:8443/cas/login
cas.logoutUrl=https://xxx.xx.121.243:8443/cas/logout
?cas.gateway=false
application.url.ssl=https://192.168.1.113:8443
application.url=http://192.168.1.113
?#application.url.ssl=http://192.168.1.113
?cas.mockserver=false
在需要验证的controller 中加入@With(SecureCAS.class)
把从服务器端生成的client.crt文件导入jvm中,记得密码为 changeit
?
keytool -import -keystore "C:\Program Files\Java\jdk1.6.0_23\jre\lib\security\cacerts" -file play.crt -alias play
客户端导入输入 密码: changeit
?
?
最优的配置参考:http://vanadiumlin.iteye.com/blog/974483