系列文章列表:

https://blog.csdn.net/u013825231/article/category/7517313

单点登录的介绍

单点登录(Single Sign On ,简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
CAS(Central Authentication Service)是 Yale大学发起的一个企业级的、开源的项目,旨在为 Web 应用系统提供一种可靠的单点登录解决方法。
在5.0版本之前,cas使用的是ssh的那套框架来搞的,网上关于使用xml来配置的资料也是很多。前端也是使用jsp来弄的。所有的东西(连接数据库,自定义加密等等)一系列的东西都是通过写代码,然后在deployerConfigContext.xml里面进行bean的注入,这些我就不讲了,我主要讲的就围绕着5.0版本之后来讲吧,5.0版本之后的最大改变就是引入了现在比较流行的微服务架构也就是spring
boot这套,他将之前使用bean注入的换成了spring
boot的配置来弄了,以及增加了容器(docker)。网上对于5.0后的内容也是少之又少,因为最近公司让我做这块,然后研究了一阵子,将自己遇到的坑以及怎么一步步的完成设计的过程分享给大家。

工具

jdk1.8u171

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

tomcat 8.5 (注意要使用tomcat8版本以上的)

https://tomcat.apache.org/download-80.cgi#8.5.31

cas-overlay-template-5.2.1

为什么要使用cas-overlay呢?刚开始我也是不知道找哪个,下载了主版本,但是发现他是用gradle编译的,习惯maven编译的我想想是有多痛苦,但是没办法就装了个ide,本以为装了后就能编译,后来发现要编译这么多模块,但是好多模块是我们不需要的,还有我们下载下来的每个模块都是有源码的。难道我们要改源码来完成cas的设计吗。还好看了cas的官方说明文档,这里可以自己去github上面看。发现官方提供了一个无侵入式的一套来设计cas,所谓的无侵入式就是你直接打成war包,放到tomcat里面运行,你能运行,你也可以自己建立相应的文件,cas这套他能将你的覆盖掉他原有的(名字路径相同)。通过这样来达到改变代码以及其他东西来完成cas服务器的搭建。好了,废话不多说。先来搭建一波简单的cas服务器,也就是github下载下来的直接放到tomcat来运行的。

首先还是从生成证书开始把,因为cas是需要域名的,而我们可以通过jdk中的keytool生成证书。

keytool是JDK的一个命令,所以,jdk的目录必须在path中,就需要:

  1. 使用第一个命令:keytool -genkey -alias cas -keyalg RSA -validity 999 -keystore d:/thekeystore会出现如图界面,这时候会在d盘生成thekeystore文件。

     
  2. 继续下一个命令:keytool -export -file d:/cas.crt -keystore d:/thekeystore -alias cas,这时候会生出一个交cas.crt的证书。
  3. 最后将证书导入到jre中: keytool -import -file d:/cas.crt
    -alias cas -keystore "C:\Program Files\Java\jre1.8.0_171\lib\security\cacerts" -storepass
    changeit,记住要加上jdk的默认密码,也就是
    -storepass changeit,这时候会出现下图所示,
  4. 这个过程千万要注意你的路径是否存在空格,这个将导致问题的出现。到这里就完成了证书的生成了,现在就可以继续下一步了。
  5. 记住证书生成后记得要修改host文件,因为我们是自己生成的证书。修改host文件其实就是将本地的ip对应到你刚才输入的域名,也就是test.test.com, 修改C:\Windows\System32\drivers\etc\hosts ,添加 127.0.0.1     test.test.com

下载cas-overlay

进入这个链接去选择自己想下载的版本,我这边以5.2,也就是master

https://github.com/apereo/cas-overlay-template/tree/5.2

下载好以后,打开看以后应该是这样的目录结构,我们可以直接在里面打开命令行(cmd)运行mvn
clean
package
来进行编译,因为我们这个编译出来的是war包,等pom的jar包下载完后以及编译成功后就会多出一个target文件夹,里面有cas的内容,我们只需要将cas.war(或者直接将cas的文件夹放到tomcat的webapp并启动tomcat)这时候我们访问test.test.com:8080/cas/login就能看到如下的页面,这时候基本的就完成了,这时候就有人问那前面生成的证书也没什么用啊,没错,我们现在的确是没有用到证书,所以这上面不是有两个提醒吗,第一个就是因为我们使用的是http而不是https,所以我们要去配置tomcat。找到tomcat里面的conf中的server.xml将

 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
改成下面的          
  <Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8080" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="d:\thekeystore" keystorePass="dsideal"
clientAuth="false" sslProtocol="TLS"/>

访问:  https://localhost:8080

,

这时候重新启动tomcat,然后继续按刚才的去访问,发现找不到,因为我们之前使用的是http,现在换成https了,你只要加入https就可以出现这个画面:
,这时候我们明显发现那个no-security的提醒已经没有了,cas要求是以域名来访问的(之后整合客户端的时候会讲到)。
剩下的我们就是登录进去,默认的用户名和密码是casuser:Mellon,登录进去就是这个页面
好了,今天的就到这儿把,下次继续将如何使用动态的数据库以及自定义登录验证还有restful请求都写一下

CAS5.2x单点登录(一)——搭建cas服务器的更多相关文章

  1. CAS5.2x单点登录(二)cas服务器连接数据库

    前面一节应该已经告诉大家如何搭建cas的服务器了,可是搭建好能用吗?我们现在的用户验证是在哪呢?哪个默认的用户名和密码有是在哪呢? 本节就讲一下如何使用cas服务器连接我们自己的用户数据库,毕竟没有哪 ...

  2. 基于CAS的单点登录实战(1)-- 搭建cas服务器

    公司有几个系统想做SSO,然后开始研究cas.系统是Centos7 搭建CAS服务器 cas的版本比较多,先在网上搜了一下各种教程配置经验.本来想搭建最新的CAS版本,然而为了快速部署,选择了网上教程 ...

  3. [转]单点登录SSO学习——CAS协议内容

    作者:anmaler 本文转自:http://blog.zhaojunling.me/p/24 CAS中文文档甚少,这篇文章对CAS接口参数有比较清楚的说明,排版也不错查阅舒适 在当前互联网产品中使用 ...

  4. Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署

    Hadoop生态圈-单点登录框架之CAS(Central Authentication Service)部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.CAS简介 CAS( ...

  5. cas sso单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    转:http://blog.csdn.net/ae6623/article/details/8848107 1)PPT流程图:ppt下载:http://pan.baidu.com/s/1o7KIlom ...

  6. SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析

    落雨 cas 单点登录 一.用户第一次访问web1应用. ps:上图少画了一条线,那一条线,应该再返回来一条,然后再到server端,画少了一步...谢谢提醒.而且,重定向肯定是从浏览器过去的.我写的 ...

  7. 搭建CAS服务器,并实现一个简单的单点登录的demo

    官网:http://jasig.github.io/cas/Cas Server下载:http://developer.jasig.org/cas/Cas Client下载:http://develo ...

  8. SSO之CAS单点登录详细搭建教程

    本教程是我个人编写,花费几个小时的时间,给需要学习的人员学习使用,希望能帮助到你们. [环境说明]:本文演示过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下: windows7 ...

  9. [精华][推荐] CAS SSO单点登录环境搭建及实例

    1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 12 ...

随机推荐

  1. XP局域网访问无权限、不能互相访问问题的完整解决方案

    XP局域网访问无权限问题的完整解决方案: 1:用管理员账户登录系统 2:在“开始”-- “运行”里输入 GPEDIT.MSC 目的是打开组策略选项 3:依次展开”WINDOWS设置”-”本地策略”-” ...

  2. 【设计模式】—— 观察者模式Observer

    前言:[模式总览]——————————by xingoo 模式意图 观察者模式,也叫发布/订阅模式,从名字来说就能察觉到它的过程应该是,发布——其他人接受. 这个模式定义了对象之间的一种依赖关系,当一 ...

  3. ubuntu中报错:无法分配内存 (errno=12)

    今天碰到一个大坑,差点要了老命! 之前装了ubuntu双系统,后来崩溃,想在就想装VMware虚拟机,再装ubuntu,一切进展顺利,直到在虚拟机的ubuntu中安装IDEA时出现了问题. 安装过程并 ...

  4. 【转】Keil ARM开发 error L6236E错误解决

    顺利创建了第一个Keil工程却发现不能完成链接,出现了一个下面这样的报错: .\Objects\demo_simple.sct(7): error: L6236E: No section matche ...

  5. Mountainous landscape

    Description 现在在平面上给你一条折线 \(P_1P_2 \cdots P_n\) . \(x\) 坐标是严格单调递增的.对于每一段折线 \(P_iP_{i+1}\) ,请你找一个最小的 \ ...

  6. Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转

    Java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法 // Obtains an instance of Dat ...

  7. spring.net框架配置和使用

    spring.net框架学习笔记 spring.net框架是用于解决企业应用开发的复杂性的一种容器框架,它的一大功能IOC(控制反转),通俗解释就是通过spring.net框架的容器创建对象实体,而不 ...

  8. c++并发编程之互斥锁(mutex)的使用方法

    1. 多个线程访问同一资源时,为了保证数据的一致性,最简单的方式就是使用 mutex(互斥锁). 引用 cppreference 的介绍: The mutex class is a synchroni ...

  9. java Random.nextInt()方法

    转: java Random.nextInt()方法 lic int nextInt(int n) 该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含 ...

  10. Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP

    Java基础-SSM之Spring的POJO(Plain Old Java Object)实现AOP 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上次我分享过Spring传统的A ...