使用shiro-cas实现单点登录,多点注销


一,需求

  因为公司内部子系统较多,需要建立一个门户网站把各个子系统接入进来,实现统一登录。

二,单点登录原理

  Shiro 1.2开始提供了Jasig CAS单点登录的支持,单点登录主要用于多系统集成,即在多个系统中,用户只需要到一个中央服务器登录一次即可访问这些系统中的任何一个,无须多次登录。此处我们使用Jasig CAS v4.0.0版本。

三,配置服务端

  1,生成证书

    使用JDK的keytool命令,生成证书(包含证书/公钥/私钥)到D:\localhost.keystore:

      keytool -genkey -keystore "D:\localhost.keystore" -alias localhost -keyalg RSA -validity 36500

    输入密钥库口令: 123456  //后面会用到,需要记住

    再次输入新口令: 123456

    您的名字与姓氏是什么?

       [Unknown]:  localhost    //实际情况中为服务器的域名

    您的组织单位名称是什么?

       [Unknown]:  bestpay

    您的组织名称是什么?

       [Unknown]:  bestpay

    您所在的城市或区域名称是什么?

       [Unknown]:  shanghai

    您所在的省/市/自治区名称是什么?

       [Unknown]:  shanghai

    该单位的双字母国家/地区代码是什么?

       [Unknown]:  cn

    CN=localhost, OU=bestpay, O=bestpay, L=shanghai, ST=shanghai, C=cn是否正确?

       [否]:  y

    输入 <localhost> 的密钥口令

         (如果和密钥库口令相同, 按回车):

    通过如上步骤,生成证书到D:\ localhost.keystore

  2,修改tomcat的server.xml

    此处使用了apache-tomcat-7.0.40版本,打开conf/server.xml,找到:

1 <!--  
2 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
3        maxThreads="150" scheme="https" secure="true"  
4        clientAuth="false" sslProtocol="TLS" />  
5 --> 

    替换为:

1 <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  
2        maxThreads="150" scheme="https" secure="true"  
3        clientAuth="false" sslProtocol="TLS"   
4        keystoreFile="D:\localhost.keystore" keystorePass="123456"/> 

    keystorePass就是生成keystore时设置的密码。

  3,将其cas-server-webapp模块封装到服务端的项目模块中,目录结构如图:

  4,启动tomcat,输入https://localhost:8443/login,输入用户名:casuser,密码:Mellon即可登录

 

 

  

四,配置客户端


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM