单点登录-服务端cas(mac)

目录

一、环境要求:

二、生成密钥文件:thekeystore

三、下载cas源码

四、打包cas项目

五、部署cas项目

六、运行cas项目

七、登录测试

 八、报错及原因


        cas github地址 https://github.com/apereo/cas-overlay-template/tree/5.3 

一、环境要求:

        java 1.8系列的,cas5.3

二、生成密钥文件:thekeystore

1、终端进入java环境目录:

cd /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin

 2、终端用keytool生成密钥文件

sudo keytool -genkey -v -keystore thekeystore -alias thekeystore -keyalg RSA

输入相关信息:(都推荐名字用域名,不太懂)

您的名字与姓氏是什么?
  [Unknown]:  cas.server.name
您的组织单位名称是什么?
  [Unknown]:  cas.server.name
您的组织名称是什么?
  [Unknown]:  cas.server.name
您所在的城市或区域名称是什么?
  [Unknown]:  wuhan
您所在的省/市/自治区名称是什么?
  [Unknown]:  hubei
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=cas.server.name, OU=cas.server.name, O=cas.server.name, L=wuhan, ST=hubei, C=cn是否正确?
  [否]:  y

 密钥口令按照cas官方,设为changeit

若提示转换为标准格式,则按提示操作:

keytool -importkeystore -srckeystore thekeystore -destkeystore thekeystore -deststoretype pkcs12

 运行完成后,生成thekeystore文件,文件目录为上述java环境目录

/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/bin

三、下载cas源码

推荐使用5.3和5.2版本,这里用的5.3

cas源码地址:GitHub - apereo/cas-overlay-template: Apereo CAS WAR Overlay template

 选择如下版本,右侧download代码

四、打包cas项目

终端进入源码路径下

cd /Users/xxx/cas-overlay-template-5.3

终端输入命令

./build.sh package

五、部署cas项目

将源码中/etc/cas下config目录复制到系统路径下:/etc/cas

将生成的thekeystore文件放入系统路径下:/etc/cas,不是项目下的对应路径。

 

六、运行cas项目

 终端源码目录下,输入以下命令

sudo ./build.sh run

 出现以下界面,没有报错信息即运行成功

 

七、登录测试

测试网址:https://localhost:8443/cas

测试用户名/密码:casuser/Mellon

 

 

 八、报错及原因

报错一:java不是1.8版本出现的问题

 Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlType

查看运行结果apereocas图标下的Java Version,如果不是1.8的版本,则按以下方式解决。

错误原因:系统中同时有不同版本的java(jdk)时,会按照从新到旧的顺序排列,并在运行cas时使用最新的jdk(top jdk),即使用上述结果中的第一个java版本:11.0.16.1。因此导致报错。为此想办法将1.8的版本变为top jdk。方法如下:

修改1.8版本的Info.plist 文件的 dict#dict#JVMVersion 下的标签内容,1.8.0_291 →18.0_291

/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Info.plist

修改后再执行应该这个报错就没有了。 

 注:关于切换不同版本的java,有很多说在bash或zsh配置文件中添加对应的环境路径,但都无法改变/usr/libexec/java_home的输出结果。该结果由java版本决定,通常的配置环境方法不起作用。因此采用这里的方法。参考自:https://my.oschina.net/kaisesai/blog/5529758

补充:zsh相关的一些命令,如查看java环境、修改配置文件,查看以下链接:

 mac设置java环境变量, 使用oh-my-zsh - HF_Cherish - 博客园

不同版本jdk在系统中的位置如下:   

终端查看系统top jdk,输入命令

/usr/libexec/java_home # 输入命令

# 修改Info.plist前输出结果:
(base) wuzhenkun@wuzhenkundeMacBook-Air ~ % /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home

# 修改Info.plist后输出结果:
(base) wuzhenkun@wuzhenkundeMacBook-Air ~ % /usr/libexec/java_home
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

 终端查看系统jdk所有版本,输入命令

/usr/libexec/java_home -V #输入命令

# 修改Info.plist前输出结果
(base) xxx@xxxdeMacBook-Air ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    11.0.16.1 (arm64) "Oracle Corporation" - "Java SE 11.0.16.1" /Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
    1.8.341.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_291 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home

# 修改Info.plist后输出结果
(base) xxx@xxxdeMacBook-Air ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (3):
    18.0_291 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
    11.0.16.1 (arm64) "Oracle Corporation" - "Java SE 11.0.16.1" /Library/Java/JavaVirtualMachines/jdk-11.0.16.1.jdk/Contents/Home
    1.8.341.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home

# 排序第一的即为top jdk

报错二:权限问题,sudo

 ERROR RollingFileManager (/etc/cas/logs/cas.log) java.io.FileNotFoundException: /etc/cas/logs/cas.log (Permission denied) java.io.FileNotFoundException: /etc/cas/logs/cas.log (Permission denied)

 解决方式:在终端执行命令前加sudo

报错三:密钥问题

java.lang.IllegalArgumentException: Invalid keystore format

 欢迎各位指正

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值