上一篇写到服务端部署的是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部署和联调的更多相关文章

  1. CAS学习笔记二:CAS单点登录流程

    背景 由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对 ...

  2. 单点登录(五)-----遇到问题-----cas server 源码部署tomcat运行报错BeanCreationException:Error creating bean with name 's

    我们在上一篇文章已经解决了把下载好的cas server源码部署到tomcat缺少子项目编辑文件或者jar包导致找不到class报错的问题 单点登录(四)-----遇到问题-----cas serve ...

  3. 单点登录(四)-----遇到问题-----cas server 源码部署tomcat运行报错ClassNotFoundException: org.jasig.cas.CasEnvironmentCo

    情况 cas单点登录 cas server 源码部署tomcat运行报错 把cas server的代码下载下来后使用gradle插件或者maven插件以及转化成eclipse·后导入发现部署到tomc ...

  4. 单点登录(六)-----遇到问题-----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 ...

  5. Cas(02)——部署Cas Server

    部署Cas Server Cas应用都需要有一个Cas Server.Cas Server是基于Java Servlet实现的,其要求部署在Servlet2.4以上版本的Web容器中.在此笔者将其部署 ...

  6. CAS学习笔记三:SpringBoot自动配置与手动配置过滤器方式集成CAS客户端

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式集成CAS客户端. 需要提前搭建 CAS 服务端,参考 https://www.cnblogs.com/hell ...

  7. CAS学习笔记五:SpringBoot自动/手动配置方式集成CAS单点登出

    本文目标 基于SpringBoot + Maven 分别使用自动配置与手动配置过滤器方式实现CAS客户端登出及单点登出. 本文基于<CAS学习笔记三:SpringBoot自动/手动配置方式集成C ...

  8. CAS学习笔记(三)—— SERVER登录后用户信息的返回

    一旦CAS SERVER验证成功后,我们就会跳转到客户端中去.跳转到客户端去后,大家想一想,客户端总要获取用户信息吧,不然客户端是怎么知道登录的是哪个用户.那么客户端要怎么获取用户信息呢? 其实验证成 ...

  9. 单点登录cas常见问题(二) - 子系统是否会频繁訪问cas中心?

    这个问题的完整描写叙述是:用户成功登陆后.在訪问子系统的受限资源时,还须要訪问cas中心么,即子系统是否还会频繁訪问cas中心.cas中心会不会压力太大? 答案是:不会. 假设用户通过子系统A登录了c ...

  10. kubernetes学习笔记(二)——部署服务

    文章目录 (1)创建app (2)创建app的docker镜像 (3)部署app到k8s (4)参考资料 前面一篇文章部署好了minikube环境,这次学习下怎么部署app到kubernetes环境当 ...

随机推荐

  1. <vue初体验> 基础知识 2、vue的列表展示

    系列导航 <vue初体验> 一. vue的引入和使用体验 <vue初体验> 二. vue的列表展示 <vue初体验> 三. vue的计数器 <vue初体验&g ...

  2. 接口自动化测试复习巩固第二天,管理员后端验证和接口抓包+requests实现

    接口自动化测试第二天,需要用到的第三方库有os,openpyxl,json,pytest,requests 首选我们今天的目标是写出一个测试登录用例的脚本,这里我用的是分层设计,整个框架暂时被分为工具 ...

  3. 分享 ASCII 字符集的字模

    是做 VGA 显示屏时用到的,这是字模资源:gitee 链接 以下为字模代码: // 133 * 16 * 8 字模的 parameter reg [127:0] C_ascii_character ...

  4. CSS3之transition

    随着css3不断地发展,越来越多的页面特效可以被实现. 例如当我们鼠标悬浮在某个tab上的时候,给它以1s的渐进变化增加一个背景颜色.渐进的变化可以让css样式变化得不那么突兀,也显得交互更加柔和. ...

  5. JavaScript 对象和 JSON 的区别

    参考原文:https://blog.csdn.net/jiaojiao772992/article/details/77871785/ 2.1 对象和 JSON 的区别 JSON 就是 JavaScr ...

  6. Nginx reload重新加载配置文件的异常情况

    Nginx reload重新加载配置文件的异常情况 背景 临近年底, 很多业务工作量都上来了. 今天同事告知, nginx的log 里面出现了大量的 too many openfiles 的提示信息. ...

  7. [转帖]9.1 TiDB HTAP 的特点

    HTAP 是 Hybrid Transactional / Analytical Processing 的缩写.这个词汇在 2014 年由 Gartner 提出.传统意义上,数据库往往专为交易或者分析 ...

  8. [转帖]从DDR到DDR4,内存核心频率基本上就没太大的进步!

    https://zhuanlan.zhihu.com/p/84194049 从2001年DDR内存面世以来发展到2019年的今天,已经走过了DDR.DDR2.DDR3.DDR4四个大的规格时代了(DD ...

  9. 学习下Redis内存模型

    作者:京东零售 吴佳 前言 redis,对于一个java开发工程师来讲,其实算不得什么复杂新奇的技术,但可能也很少人去深入了解学习它的底层的一些东西.下面将通过对内存统计.内存划分.存储细节.对象类型 ...

  10. 一招轻松解决node内存溢出问题

    node启动项目造成内存溢出的解决办法 我们在使用node启动项目的时在项目较大的时候,可能会造成内存溢出.为什么会造成内存溢出呢? 要回答上面这个问题,我们要了解node中是如何分配内存的. Nod ...