CAS 5.3. x SSO 단일 로그 인 구축

3797 단어 CASSSO
1. CAS 구축 도구 설명
CAS 버 전
overlay - template 구축 방식
자바 버 전
5.x
Maven
1.8+
6.x
Gradle
1.9+
Tip: 이 문 서 는 5.3.14 버 전 을 사용 합 니 다.
2. 설치 준비
1. 자바 설치
2. Maven 설치
1. 下载Maven,地址:https://maven.apache.org/
2. 解压下载的文件
3. 配置Maven,配置文件在Maven解压目录下:conf/settings.xml
	* 指定本地 Jar 存放目录路径,如果不指定,默认在 "[用户家目录]/.m2" 目录下。(非必须):

		 D:\\maven\\repository
		 
	* 配置远程仓库地址,推荐使用阿里的仓库,如果不配置有些包会下载的很慢。(视你的网络情况而定,非必须)
		 
		 
		    
		      alimaven
		      central
		      aliyun maven
		      http://maven.aliyun.com/nexus/content/groups/public/
		    
		   
		   
	* 将 Maven 目录的bin路径添加到 系统环境变量 Path 中,CAS 构建命令会使用到Maven命令,如果没有配置环境变量,会无法执行。(**必须**)
5. 从github下载稳定版分支 cas-overlay-template-5.3,地址:https://github.com/apereo/cas-overlay-template/branches/stale

3. CAS 구축 시작
1. 构建项目比较简单,只需要到下载的 cas-overlay-template 目录执行:
build.cmd clean # 清除生成的内容,第一次会下载一堆包
build.cmd package # 编译打包,第一次会下载一堆包,如果下载慢可以换个 maven 的仓库源
build.cmd run  # 直接启动 cas,启动后可以通过 http://localhost:8443/cas 访问,默认用户名密码“casuser/Mellon”,这个可以用于快速验证 cas
2. 如何取消 https,测试时取消 https 比较方便,取消方法:
	* 修改 target/cas/WEB-INF/classes/application.properties 文件,增加配置:
	
		cas.tgc.secure=false
		cas.serviceRegistry.initFromJson=true

	* 修改 target/cas\WEB-INF\classes\services/HTTPSandIMAPS-10000001.json 文件为:
		{
		  "@class" : "org.apereo.cas.services.RegexRegisteredService",
		  "serviceId" : "^(https|http|imaps)://.*",
		  "name" : "HTTPS and IMAPS",
		  "id" : 10000001,
		  "description" : "This service definition authorizes all application urls that support HTTPS and IMAPS protocols.",
		  "evaluationOrder" : 10000
		}

3. 配置 MySQL 数据库认证:
	* 修改 overlay-template 的 pom.xml 文件,增加对数据库的支持:
	
	   
       
           org.apereo.cas
           cas-server-support-jdbc
           ${cas.version}
       
       
       
           org.apereo.cas
           cas-server-support-jdbc-drivers
           ${cas.version}
       
            
	* 配置 appalication.properties 文件,指定数据库信息(追加):
	
		##
		# CAS Authentication Credentials
		#
		# 使用数据库,默认演示用的登陆账号 关闭掉(注释掉)
		# cas.authn.accept.users=casuser::Mellon
		
		# 关闭 https
		cas.tgc.secure=false
		cas.serviceRegistry.initFromJson=true
		
		# 连接 MySQL 数据库认证
		cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver
		cas.authn.jdbc.query[0].url=jdbc:mysql://127.0.0.1:3306/kmc_cscrm?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
		cas.authn.jdbc.query[0].user=root
		cas.authn.jdbc.query[0].password=root
		# cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect
		# 查询用户信息SQL
		cas.authn.jdbc.query[0].sql=select * from tb_account where name=?
		cas.authn.jdbc.query[0].fieldPassword=password
		# cas.authn.jdbc.query[0].fieldExpired=expired
		# cas.authn.jdbc.query[0].fieldDisabled=disabled
		# 密码加密策略,默认不加密,这里使用 MD5 加密
		cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT
		cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8
		cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
		# cas.authn.jdbc.query[0].passwordEncoder.secret=
		# cas.authn.jdbc.query[0].passwordEncoder.strength=32

좋은 웹페이지 즐겨찾기