上一篇写到服务端部署的是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. SQL—排序专用窗口函数

    下面介绍三种用于进行排序的专用窗口函数: 1.RANK()     在计算排序时,若存在相同位次,会跳过之后的位次.     例如,有3条排在第1位时,排序为:1,1,1,4······ 2.DENS ...

  2. Verilog Review

    Agenda 目的 Verilog概述 Verilog建模 模块 模块组成 书写建议 时延 Verilog基本语法 标识符 可读性 注释 空格 数据类型 操作数 运算符 条件语句 循环语句 函数 Ve ...

  3. Laravel - 419 unknown status 解决

    在 head 头部加入下方代码就可解决<meta name="_token" content="{{ csrf_token() }}"/>

  4. shell-命令行位置参数-$n

  5. Chrony 的学习与使用

    Chrony 的学习与使用 背景 之前捯饬 ntp 发现很麻烦, 经常容易弄错了. 昨天处理文件精确时间时 想到了时间同步. 发现只有自己总结的ntpdate 但是还没有 chronyd相关的总结 本 ...

  6. [转帖]在 TiDB 中正确使用索引,性能提升 666 倍

    https://tidb.net/book/tidb-monthly/2022/2022-04/usercase/index-666 背景​ 最近在给一个物流系统做TiDB POC测试,这个系统是基于 ...

  7. [转帖]PG-用户|角色管理

    https://www.cnblogs.com/binliubiao/p/14415203.html 1. 角色 ​ 决定发起连接的命令的初始访问权限.在PG中,角色和用户相当于是一样的对象.区别在于 ...

  8. memtester 以及 mlc 简单学习

    memtester 以及 mlc 简单学习 下载 memtester https://pyropus.ca./software/memtester/ 下载好后直接进行 make 和make insta ...

  9. Arthas 超简单离线使用教程

    简介 Arthas 是阿里巴巴开源的一套监控java应用的工具 官网的文档地址: https://arthas.aliyun.com/doc/ 官方的简介说明: Arthas 是Alibaba开源的J ...

  10. 一次JSF上线问题引发的MsgPack深入理解,保证对你有收获

    作者: 京东零售 肖梦圆 前序 某一日晚上上线,测试同学在回归项目黄金流程时,有一个工单项目接口报JSF序列化错误,马上升级对应的client包版本,编译部署后错误消失. 线上问题是解决了,但是作为程 ...