【CAS学习二】CAS部署和联调
上一篇写到服务端部署的是CAS 6.4版本,可后面与客户端集成时出现未认证授权的服务,如下:

网上查了下,要把http的访问打开。具体设置步骤是:修:%Tomcat%\webapps\cas\WEB-INF\classess\application.properties,在最下面添加如下代码:
cas.tgc.secure=false
cas.serviceRegistry.initFromJson=true
修改%Tomcat%\webapps\cas\WEB-INF\classes\services\HTTPSandIMAPS-10000001.json,serviceId值增加http,如下:

可一看tomcat和源码中,都没有这两个文件。网上查了良久都差不到原因,正郁闷时发现一个博客里面提到的方法,此处郑重感谢下:https://blog.csdn.net/weixin_43731618/article/details/109385333
先用命令gradlew clean build 打包,再gradlew explodeWar解压即可出现那些配置文件。话不多说,开干:


gradlew explodeWar出错了,郁闷,查了半天无果,只能放弃了(哪位大神如果知道的麻烦告知,不胜感激)。换旧版试试,6.3一样失败,6.2成功了,故改用6.2部署,下面说下CAS 6.2部署、配置数据库、与Client端联合测试。
一.CAS 6.2打包及部署
下载和初步打包就不说了,想看的朋友看上一篇。
1.解压获取配置文件

2.修改配置
1.解压完成后会在bulid目录下生成一个cas-resources 文件夹,把它拷贝到src/mian文件下改名为resources。
---------->
3.修改application.properties,如下图

注释掉:
#cas.authn.accept.users=casuser::Mellon
#cas.authn.accept.name=Static Credentials
增加数据库配置和http准入,数据库配置中注释掉的是MySQL的配置。注意此处要先创建数据库cas,表t_user,具体方法网络上很多。
另外sqlserver的jdbc url是:jdbc:sqlserver://127.0.0.1;instanceName=MSSQLSERVER2016;databaseName=cas,
其中127.0.0.1代表本机数据库;instanceName后面是实例名,如果就1个实例可不写;databaseName后面是数据库名称

4.cas服务开启Rest认证
cas-overlay-template-6.2\build.gradle中添加rest的依赖

5.重新打包,再解压(怀疑这步可能多余)
gradlew clean build
gradlew explodeWar
把cas-overlay-template-6.2\build\libs\cas.war 文件拷贝到tomcat的webapps目录下,重启tomcat即可。

此步骤参考:https://blog.csdn.net/weixin_43731618/article/details/109385333
二.CAS-Client部署和联调
1.下载测试客户端:https://github.com/cas-projects/cas-sample-java-webapp
2.修改配置:cas-sample-java-webapp-master\src\main\webapp\WEB-INF\web.xml
casServerUrlPrefix键值改为cas server地址,casServerLoginUrl键值改为部署的cas server的登录地址,serverName改为当前client的部署地址:

3.打包部署到Tomcat
执行命令:mvn clean package,打包完成后拷贝cas-sample-java-webapp-master\target\cas-sample-java-webapp.war到Tomcat的webapps下,重启Tomcat
4.联调
(1)发送POST请求一,获取TGT,请求地址/cas/v1/tickets,请求响应头中的Location即包含CAS服务器返回的TGT
POSTMAN的方式:

(2)发送POST请求二,获取ST,直接使用请求一中返回的Location作为请求地址,service参数为客户端地址注意下面的service参数的值都要以/结尾
PostMan方式:

(3)校验ST,访问http://localhost:8080/cas-sample-java-webapp/?ticket=ST-4-xzdl0IBFFdL5xj-vYs-rp1-goVc-DESKTOP-VLJVAUU完成登录
中间出现过下图圈出部分汉字乱码的问题,修改%Tomcat%\webapps\cas-sample-java-webapp\WEB-INF\web.xml,filter中增加
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
重启Tomcat后正常显示,此处感谢:https://blog.csdn.net/shunhua19881987/article/details/78720517

总结
首次接触Java项目,部署过程曲折,其实中间还有很多尝试操作不足为外人道,有价值的部分记录下来,希望对大家有帮助,如果哪里写的不对的,欢迎指正。
【CAS学习二】CAS部署和联调的更多相关文章
- CAS学习笔记二:CAS单点登录流程
背景 由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对 ...
- 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's
我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...
- 单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo
情况 cas单点登录 cas server 源码部署tomcat运行报错 把cas server的代码下载下来后使用gradle插件或者maven插件以及转化成eclipse·后导入发现部署到tomc ...
- 单点登录(六)-----遇到问题-----cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of pr
cas server 源码部署导入gradle后有感叹号---错误信息A cycle was detected in the build path of project 'cas-server-cor ...
- Cas(02)——部署Cas Server
部署Cas Server Cas应用都需要有一个Cas Server.Cas Server是基于Java Servlet实现的,其要求部署在Servlet2.4以上版本的Web容器中.在此笔者将其部署 ...
- CAS学习笔记三:SpringBoot自动配置与手动配置过滤器方式集成CAS客户端
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式集成CAS客户端. 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hell ...
- CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出
本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...
- CAS学习笔记(三)—— SERVER登录后用户信息的返回
一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成 ...
- 单点登录cas常见问题(二) - 子系统是否会频繁訪问cas中心?
这个问题的完整描写叙述是:用户成功登陆后.在訪问子系统的受限资源时,还须要訪问cas中心么,即子系统是否还会频繁訪问cas中心.cas中心会不会压力太大? 答案是:不会. 假设用户通过子系统A登录了c ...
- kubernetes学习笔记(二)——部署服务
文章目录 (1)创建app (2)创建app的docker镜像 (3)部署app到k8s (4)参考资料 前面一篇文章部署好了minikube环境,这次学习下怎么部署app到kubernetes环境当 ...
随机推荐
- Asp .Net Core 系列:集成 Ocelot+Nacos+Swagger+Cors实现网关、服务注册、服务发现
目录 简介 什么是 Ocelot ? 什么是 Nacos ? 什么是 Swagger ? 什么是 Cors ? Asp .Net Core 集成 Ocelot 网关集成 Nacos 下游配置 Naco ...
- new关键字执行过程
在javascript中,现阶段我们可以采用三种方式创建对象(object) 利用字面量创建对象 利用new Object创建对象 利用构造函数创建对象 new关键字执行过程 // new关键字执行过 ...
- Threejs实现一个园区
一.实现方案 单独贴代码可能容易混乱,所以这里只讲实现思路,代码放在最后汇总了下. 想要实现一个简单的工业园区.主要包含的内容是一个大楼.左右两片停车位.四条道路以及多个可在道路上随机移动的车辆.遇到 ...
- JavaWeb+JDBC+Servlet+SqlServer实现登录功能
首先创建javaweb项目,可以参照以下: https://blog.csdn.net/u012532559/article/details/51013400 附上项目结构: 1.重写登录页面inde ...
- java进阶(16)--System常用方法总结
一.Systen.out静态变量 静态变量,用的最多的是调用print方法 二.System.out.println() println()其实是printStream类的方法 三.Sytem ...
- Vue第一篇 ES6的常用语法
01-变量的定义 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 简单剖析Hashmap
剖析 Java Hashmap 源码 在 Java 的集合框架中,HashMap 是一颗璀璨的明珠.通过深入挖掘其源码,我们将揭开 HashMap 的神秘面纱,理解其底层原理.扩容机制和数据结构. 1 ...
- python · matplotlib | 如何绘制子图
代码: import matplotlib.pyplot as plt import matplotlib matplotlib.rc("font",family='MicroSo ...
- 海思Hi35xx 通过uboot查看flash指定地址的数据
前言 在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样. 网上有介绍说是nandflash 不稳定,高温或是静电会导致nan ...
- 在TypeScript项目中搭配Axios封装后端接口调用
前言 本来是想发 next.js 开发笔记的,结果发现里面涉及了太多东西,还是拆分出来发吧~ 本文记录一下在 TypeScript 项目里封装 axios 的过程,之前在开发 StarBlog-Adm ...