一、CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。

  二、cas中央认证服务器,我们在使用的时候用来作为单点登录的方式,这里主要是搭建中央认证服务器。cas存在3中访问协议,https、http、imaps。但是cas默认使用的是https的访问方式。http需要做一些配置,这里主要是说明cas搭建需要涉及的问题。接下来会说明如果修改。

  三、cas项目下载地址:https://github.com/apereo/cas-overlay-template/tree/master(这个是主线的)

    我们这里使用的是5.3版本:https://github.com/apereo/cas-overlay-template/tree/5.3(maven版)

  四、使用idea打开项目

  1)默认会下载cas-server-webapp-tomcat-5.3.8.war的依赖

  

  2)war中的内容为

  

  五、修改参数打cas.war

  1)修改账户信息:application.properties

  默认:

  

  根据自己需要进行修改,我这里修改为admin::admin

  2)如果我们要支持http的客户端,需要设置一下内容

  http:

  a、HTTPSandIMAPS-10000001.json

{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps)://.*",
"name" : "HTTPS and IMAPS",
"id" : ,
"description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder" :
}

  在serviceId中加入http

  b、在application.properties加入

#http时使用
cas.tgc.secure=false
#开启JSON文件的识别
cas.serviceRegistry.initFromJson=true

  3)maven打包

  六、运行

  七、https协议

  1)这里使用的是jdk自带的keytool证书来实现验证,实际中可以自己申请证书。这里主要是为了测试,使用linux的环境测试

  2)默认还是要加入设置

#开启json数据识别
cas.serviceRegistry.initFromJson=true

  如果需要支持http:

{
"@class" : "org.apereo.cas.services.RegexRegisteredService",
"serviceId" : "^(https|imaps)://.*",
"name" : "HTTPS and IMAPS",
"id" : ,
"description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
"evaluationOrder" :
}

  在serviceId中加入http

  3)生成证书(这里用的是相对路径,cas.keystore,密码自己set)

keytool -genkey -alias cas -keyalg RSA -keystore cas.keystore -storepass changeit

  

  备注:如果域名不一样会导致无限重定向

  4)导出证书

keytool -export -file cas.crt -alias cas -keystore cas.keystore -storepass changeit

  

  

  4)导入jdk(默认是不需要导入的,只是在进一步验证的时候需要导入)

keytool -import -keystore "/usr/java/jdk1.8.0_192/jre/lib/security/cacerts" -file cas.crt -alias cas -storepass changeit

  

  5)删除证书(cas为设置的别名,这里不做删除)

keytool -delete -alias cas -keystore "/usr/java/jdk1.8.0_192/jre/lib/security/cacerts" -storepass changeit

  

  6)配置tomcat的server.xml  

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="/root/https/cas.keystore"
keystorePass="changeit"/>

  注释8080端口

<!-- <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" /> -->

  7)启动项目测试

cas服务器搭建的更多相关文章

  1. cas 3.5.3服务器搭建+spring boot集成+shiro模拟登录(不修改现有shiro认证架构)

    因为现有系统外部接入需要,需要支持三方单点登录.由于系统本身已经是微服务架构,由多个业务独立的子系统组成,所以有自己的用户认证微服务(不是cas,我们基础设施已经够多了,现在能不增加就不增加).但是因 ...

  2. CAS5.3服务器搭建及SpringBoot整合CAS实现单点登录

    1.1 什么是单点登录 单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的 ...

  3. CAS单点登录服务器搭建

    关于cas单点登录的原理及介绍这里不做说明了,直接开始: 1.war包下载 去官网(https://www.apereo.org/projects/cas/download-cas)下载cas_ser ...

  4. CAS5.2x单点登录(一)——搭建cas服务器

    系列文章列表: https://blog.csdn.net/u013825231/article/category/7517313 单点登录的介绍 单点登录(Single Sign On ,简称SSO ...

  5. cas协议,以及tomcat搭建cas服务器

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

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

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

  7. Cas服务器以及客户端搭建

    一.搭建cas服务器 官网:http://jasig.github.io/cas/ Cas Server 下载:http://developer.jasig.org/cas/ Cas Client 下 ...

  8. CAS 5.3服务器搭建

    一.本例环境说明 JDK 1.8 CAS 5.3 apache-maven-3.6.0 二.CAS安装步骤 2.1 提前安装好JDK和Maven环境 安装步骤略 2.2 CAS环境搭建 2.2.1 C ...

  9. 应用整合CAS服务器方法

    概要 在开发WEB程序时需要整合CAS实现单点登录,下面介绍一下应用整合CAS服务器的过程. 在开始之前,我们确定CAS服务器已经搭建完毕. 实现步骤 1.新建一个maven项目,引入casclien ...

随机推荐

  1. API设计原则(觉得太合适,转发做记录)

    API设计原则 对于云计算系统,系统API实际上处于系统设计的统领地位,正如本文前面所说,K8s集群系统每支持一项新功能,引入一项新技术,一定会新引入对应的API对象,支持对该功能的管理操作,理解掌握 ...

  2. POJ 1730 Perfect Pth Powers(唯一分解定理)

    http://poj.org/problem?id=1730 题意:给出一个n,a=b^p,求出最大p值. 思路: 首先利用唯一分解定理,把n写成若干个素数相乘的形势.接下来对于每个指数求最大公约数, ...

  3. js 面试题总结 3

    console.log(a); // undefined function fn() { console.log(a); // undefined } fn(); console.log(a); 创建 ...

  4. YAML(摘录)

    YAML:维基百科 一个用来表达数据序列的格式.强调以数据为中心的标记语言. 使用空白符缩进和大量依赖外观的特殊,适合编辑数据结构,配置文件. 基本格式: 缩进/区块 和内置两者格式,来表示array ...

  5. uva10655矩阵快速幂

    a^(n+2)+b^(n+2)=(a+b)*(a^(n+1)+b^(n+1))-a*b*(a^n+b^n) 坑爹的题目关系式都推出来了居然还是wa了..... 不能只看p,q=0就退出,因为a,b不一 ...

  6. linux 网络测试命令 长期更新

    一.网络测试命令 1.测试 网络连接 发送两包后停发 [oracle@hadoop ~]$ PING www.a.shifen.com (() bytes of data. bytes from tt ...

  7. springboot搭建的2种方式

    一.搭建springboot项目有两种方式1.继承springboot项目 <parent> <groupId>org.springframework.boot</gro ...

  8. 彻底解决WP的TextBox中文字过长显示不出来的问题

    文字如果过长的话在TextBox中会显示不完全,这个大家都知道了,后来有人做了ExTextblock增强控件,大部分文字是可以显示出来了,不过,在某些情况下还是会有显示不全的情况. 这个时候一个解决方 ...

  9. SQL (FMDB)

    sql常用语句 创建表 CREATE TABLE IF NOT EXISTS "T_Person" ( "id" INTEGER NOT NULL PRIMAR ...

  10. 工作中比较重要的经验分享-2016-bypkm

    工作中总有一些经验能让人记忆深刻,能让人终生受用,相比技术而言,经验是宝贵的.无价的.在我的博客中,主要是技术类的博文,那些东西是相对死板的,价值也相对低廉.今天就记录一下我在工作中一次比较重要的经验 ...