欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

cas单点登录1-源码导入eclipse

程序员文章站 2022-03-08 20:17:22
...

谈到单点登录(SSO:Single Sign On),最出名的框架,莫过于CAS(Central Authentication Service)

官方网站:https://www.apereo.org/projects/cas

源码地址:https://github.com/Jasig/cashttps://github.com/Jasig/java-cas-client

帮助文档:https://wiki.jasig.org/display/CASC/CAS+Client+for+Java+3.1

服务端:本系列文章全部基于目前最新的CAS-4.2.7

客户端:目前CAS的Java客户端官方最新版本是3.4.1

注意:自从3.1.11开始,maven2的groupId已经变为org.jasig.cas.clien,如下所示

  1. <dependency>
  2. <groupId>org.jasig.cas.client</groupId>
  3. <artifactId>cas-client-core</artifactId>
  4. <version>3.4.1</version>
  5. </dependency>

部署Tomcat

这里使用的环境为:jdk-7u80-windows-x64apache-tomcat-8.0.21cas-client-core-3.4.0cas-server-webapp-4.0.3

首先,我们去下载CAS源码,手工构建cas.war,操作步骤如下

1、https://github.com/Jasig/cas/releases中下载4.2.7版得到cas-4.2.7zip,并解压到桌面

2、执行命令:C:\Users\Jadyer\Desktop\cas-4.2.7>mvn install -DskipTests

在构建最后,会报告下面的错误

Could not transfer artifact net.jradius:jradius-core:pom:1.0.0 from/to coova (http://coova-dev.s3.amazonaws.com/mvn): Software caused connection abort: recv failed

不过没关系,此时我们想要的war已经生成了,它就是\cas-4.2.7\cas-server-webapp\target\cas.war

除了上面手工构建的方式,还可以直接下载现成的war包,地址如下(下面两个地址都可以)
http://central.maven.org/maven2/org/jasig/cas/cas-server-webapp/4.2.7
http://mvnrepository.com/artifact/org.jasig.cas/cas-server-webapp/4.2.7
下载到的文件为cas-server-webapp-4.2.7.war,它的内容与上面手工构建得到的cas.war是相同的

接下来,将cas.war部署到Tomcat,启动后访问http://127.0.0.1:8080/cas/

关于登录密码,CAS-4.0之前的默认验证规则是:只要用户名和密码相同就认证通过

4.0之后有所改变:其默认用户名密码为casuser/Mellon,它配置在\WEB-INF\deployerConfigContext.xml

cas单点登录1-源码导入eclipse

cas单点登录1-源码导入eclipse

导入Eclipse

一 、简单实用导入方法:

1.Eclipse中新建一个WebProject,比方说cas(新建时JavaEE版本选5.0就行)

2、解压之前得到的cas.war,将其内容拷贝到新建的WebProject中即可(classes目录中的properties文件和log4j.xml拷到src即可)

验证一下:把这个WebProject发布到Tomcat,看到的应该是一样的效果

cas单点登录1-源码导入eclipse

注意:导入时,这两个jar也是CAS的:person-directory-api-1.5.1.jarperson-directory-impl-1.5.1.jar

另外:cas.war中的\WEB-INF\classes\里面并没有class文件,实际上它是在\WEB-INF\lib\cas-server-*.jar四个jar里面的

如果也想导入它们的源码,可通过以下方式找到(如果你需要的话)

  • cas-server-security-filter-2.0.3.jar

   源码地址为https://github.com/Jasig/cas-server-security-filter(实际上只有一个java文件)

   这里也可以查到源码http://mvnrepository.com/artifact/org.jasig.cas/cas-server-security-filter/2.0.3

  • cas-server-core-4.0.3.jar、cas-server-support-generic-4.0.3.jar、cas-server-webapp-support-4.0.3.jar

   这三个jar的源码就在cas-4.0.3.zip里面,直接拷过来就行了


二、源码全部导入方法:

下载好源码包后并且在eclipse里面安装好gradle插件后,以gradle的形式导入,安装方法不做介绍,导入过程及结果如下:

cas单点登录1-源码导入eclipsecas单点登录1-源码导入eclipsecas单点登录1-源码导入eclipse

cas单点登录1-源码导入eclipsecas单点登录1-源码导入eclipsecas单点登录1-源码导入eclipse

如果需要导入源码文件,下载或者导入慢时, 请查看一下链接来解决问题   http://blog.csdn.net/bitree1/article/details/54950192

启用HTTP协议支持

我们都知道,Tomcat默认是没有开启HTTPS协议的

这个时候访问http://127.0.0.1:8080/cas/会在页面看到下面的提示

  1. Non-secure Connection
  2. You are currently accessing CAS over a non-secure connection. Single Sign On WILL NOT WORK. In order to have single sign on work, you MUST log in over HTTPS.

这段提示是硬编码在\WEB-INF\view\jsp\default\ui\casLoginView.jsp中的

我们可以注释掉它,也可以让CAS支持HTTP协议,即令其不开启HTTPS验证,这时需要修改三个文件

  1. 1、\WEB-INF\deployerConfigContext.xml
  2. <bean class="org.jasig...support.HttpBasedServiceCredentialsAuthenticationHandler">添加p:requireSecure="false"
  3. 2、\WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml
  4. p:cookieSecure="true"改为p:cookieSecure="false"
  5. 3、\WEB-INF\spring-configuration\warnCookieGenerator.xml
  6. p:cookieSecure="true"改为p:cookieSecure="false"
相关标签: cas