基于CAS实现单点登录(SSO):分享过程中遇到的问题及解决方案,让你少走弯路

在做 单点登录过程中,经历了一些问题及解决方案,分享出来,可以让你少走弯路。

主要分为两方面内容:基于CAS实现单点登录(SSO)实例讲解、CAS和Shiro集成


基于CAS实现单点登录(SSO)实例讲解 

配置完成之后出现问题404错误

首先查看对应应用的tomcat服务器的log日志,报错如下:

严重: Exception starting filter CAS Single Sign Out Filter

java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory

经过此分析,说明是log类找不到,也即系统运行需要的有关log类包没有引入或引入错误,解决办法:

将commons-logging-1.1.jar拷贝到“webapps\examples\WEB-INF\lib”下即可。

commons-logging-1.1.jar包是在cas-client-3.2.1\modules中。

 

证书保存位置如果在C

d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行窗口中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。

 


验证HTTPS配置时,tomcat提示No Certificate file specified or invalid file format

tomcat server.xml https配置中,将protocol="HTTP/1.1"替换为protocol="org.apache.coyote.http11.Http11Protocol"


 

解决一台机器同时运行多个Tomcat服务

编辑Tomcat/conf/server.xml,修改5端口,并修改默认编码为utf-8(以支持中文链接)

    示例:

    

 <Serverport="8005"shutdown="SHUTDOWN">

 

     <Connector port="8080"protocol="HTTP/1.1" 

              connectionTimeout="20000" 

              redirectPort="8443"URIEncoding='UTF-8'/>

 

      <Connector port="8009"protocol="AJP/1.3"protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"redirectPort="8443"URIEncoding='UTF-8'/>


修改成:

    <Serverport="18005"shutdown="SHUTDOWN">

 

           <Connector port="18080"protocol="HTTP/1.1" 

              connectionTimeout="20000" 

              redirectPort="18443"URIEncoding='UTF-8'/>

 

           <Connector port="18009"protocol="AJP/1.3"protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"redirectPort="18443"URIEncoding='UTF-8'/>

 

CAS和Shiro集成

   这个过程正在进行中,遇到的问题及解决方案稍后会更新到这里。


发布了130 篇原创文章 · 获赞 433 · 访问量 45万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章