cas单点登录搭建

来源:互联网 发布:有关c语言的参考文献 编辑:程序博客网 时间:2024/05/17 08:19

CAS是一个开源的单点登录解决方案。github地址:http://jasig.github.io/cas

具体什么是单点登录,以及其基本原理,这里先不写了,下次再具体写。

今天只记录一下cas的基本搭建过程。

首先从它的网站上下载cas-server。

最新的4.2.x的是通过gradle构建的,如果不会用grad了就找稍微老一点的版本,以前的版本是可以用maven构建的。如果maven也不会用,或者懒得自己编译,可以找3.5.x及以前的版本,有直接编译好的。

自己编译的话也不是一定要把所有的都编译出来,只要前面几个基本的server-core和server-webapp就可以了。cas-server-webapp编译出来是一个war包,把它扔到tomcat里面就可以了。

然后是客户端,客户端不用自己去下源码编译了,已经都发布在maven仓库里了。

在自己的web工程的pom里加入cas客户端:

<dependency>        <groupId>org.jasig.cas.client</groupId>        <artifactId>cas-client-core</artifactId>        <version>3.4.1</version>  </dependency>

然后在web.xml里加上过滤器:

<!-- 该过滤器负责用户的认证工作 -->      <filter>          <filter-name>CASFilter</filter-name>          <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>          <init-param>              <param-name>casServerLoginUrl</param-name>              <param-value>http://192.168.56.101:8080/cas/login</param-value>          </init-param>          <init-param>              <param-name>serverName</param-name>              <param-value>http://192.168.56.1:8080</param-value>        </init-param>      </filter>      <filter-mapping>          <filter-name>CASFilter</filter-name>          <url-pattern>/do/*</url-pattern>      </filter-mapping>        <!-- 该过滤器负责对Ticket的校验工作 -->      <filter>          <filter-name>CAS Validation Filter</filter-name>          <filter-class>              org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>          <init-param>              <param-name>casServerUrlPrefix</param-name>              <param-value>http://192.168.56.101:8080/cas</param-value>          </init-param>          <init-param>              <param-name>serverName</param-name>              <param-value>http://192.168.56.1:8080</param-value>        </init-param>      </filter>      <filter-mapping>          <filter-name>CAS Validation Filter</filter-name>          <url-pattern>/do/*</url-pattern>      </filter-mapping>

注意一下,我这个配置里面两个ip,192.168.56.101是cas-server的ip,而192.168.56.1是cas-client自己的ip。另外过滤器的url-pattern按照自己的需要配,全部要过滤就/*,或者只过滤.do啊什么的。我这个过滤的是url中以do开头的。


配到这里把server的tomcat和client都启动,然后访问client的一个地址,会跳转到cas-server的登录页面进行登录,默认的用户名和密码是admin/admin。登录成功后会跳转回client的页面。


然后CAS应该是用https来访问的,接下来就是配https。

https的配置参照我之前的一篇文章就可以:http://blog.csdn.net/redstarofsleep/article/details/45091999

这里有2个注意点,1.配的是cas-server所在的tomcat的https,2.在生成keystore的时候要输入一个姓名,这个姓名最后要配成域名。

cas-server的https配好后,要将证书导入到client所在的jvm上,分两步

第一步,先将证书导出:

keytool -export -file d:/keys/mykeystore.crt -alias tomcat -keystore d:/keys/mykeystore
mykeystore.crt是导出的证书。导出的时候如果要输入密码就输之前在配tomcat的https的时候生成keystore时的密码。

第二步,将证书导入客户端jvm

keytool -import -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit -keypass 123456 -alias tomcat -file E:\mykeystore.crt
这里又有两个注意点:

1. jre注意一下,jdk装好后是有两跟jre的,要看下用的是哪个jre,一个是上面这跟命令里的,在jdk下面,另一个是和jdk平级目录的。在eclipse里调试和直接起tomcat用的可能就是两个不同的jre。保险一点就两个jre都导入一下。

2. 这里有两个密码,一个是storepass这个是jvm证书仓库的密码,默认就是changeit,一定要注意啊。另一个是keypass,这个才是和上面一样的生成keystore时的密码。


然后是配域名,用以管理员身份,用记事本打开C:\Windows\System32\drivers\etc\host文件,在最下面加上ip和域名,域名就是刚刚上面说的生成keystore时的名字:

192.168.56.1 casclient.com192.168.56.101 casserver.com

最后,再记得修改client的web.xml把里面的地址改成域名的。


转载请注明出处: http://blog.csdn.net/redstarofsleep


更多内容请关注微信:


2 0
原创粉丝点击