CAS使用之部署cas-overlay服务端(cas 4.2.7)

5 篇文章 0 订阅
1 篇文章 0 订阅

自我总结

1. 依赖情况

  1. CAS对JDK版本的区分比较严格。 4.x需要Java7+, 而5.x则需要Java8+
  2. 依据公司情况,本人选择的是4.2.7版本。

2. 下载

下载地址

依据自身的实际情况选择 Maven 或 Gradle 版本。

3. 导入Eclipse

详细步骤略过
导入Eclipse

修改配置文件位置, 参见上图中的标记。 打开文件 propertyFileConfigurer.xml
配置文件位置

修改为你熟悉的位置; 建议复制原始的,放到一个熟悉的位置

4. 发布Tomcat

5. 修改为支持http协议

这里要注意的是:如果进行此类修改,就不要在eclipse里进行tomcat发布了,eclipse会不断覆盖你的修改

  1. 上面配置的 cas.properties 文件
    tgc.secure=false
    warn.cookie.secure=false

  2. ${contextpath}\WEB-INF\classes\services\ HTTPSandIMAPS-10000001.json

    "serviceId" : "^(https|imaps|http)://.*",    // 增加  | http
  1. cas目录/WEB-INF/view/jsp/default 文件夹里,其中ui/casLoginView.jsp为登陆页面。我们找到这段代码删掉即可。
<%--
<c:if test="${not pageContext.request.secure}">
    <div id="msg" class="errors">
        <h2><spring:message code="screen.nonsecure.title" /></h2> 
        <p><spring:message code="screen.nonsecure.message" /></p> 
    </div>
</c:if>
--%>

6. 配置https

6.1 创建证书
  1. 使用JDK 的keytool 命令, 生成证书( 包含证书/ 公钥/ 私钥)
  2. 记住 -keystore的设置值, 一会在tomcat的server.xml配置中需要使用
cd C:\Java\jdk1.7.0_67\bin
keytool -genkey -keystore "D:\thekeystore" -alias localhost -keyalg RSA
6.2 应用证书到Web服务器-Tomcat
  1. 注意这里有一个相当坑的位置。
  2. 我的是Tomcat7.0.5,而在设置keystoreFile 和keystorePass时,千万注意这两个单词的大小写问题。
<!-- 注释掉
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="9999" protocol="HTTP/1.1" redirectPort="9443"/>
-->

<!-- 注释掉
Define an AJP 1.3 Connector on port 8009 
        <Connector port="9909" protocol="AJP/1.3" redirectPort="9443"/> 
-->

<!-- SSL -->
<!--
    1. keystoreFile:在第一步创建的key存放位置
    2. keystorePass:创建证书时的密码
-->
<Connector SSLEnabled="true" clientAuth="false" maxThreads="150" port="8443" 
    protocol="HTTP/1.1" scheme="https" secure="true" sslProtocol="TLS" 
    keystoreFile="D:/Projects/_components/kanq-cas-server/etc/cas/jetty/thekeystore" 
    keystorePass="changeit"  />
6.3 导出证书
  1. 首先使用thekeystore导出数字证书(公钥)。
  2. 导出证书完成后,可以分发给应用的JDK使用了。
keytool -export -file d:/wsria.crt -alias localhost -keystore D:\thekeystore
6.4 为客户端的JVM导入证书
  1. 因为CAS client需要使用上一部得到的证书进行验证,需要将证书导入到JDK。
  2. 如果导入失败,可以先把security 目录下的cacerts删掉。
keytool -import -keystore C:\Java\jdk1.8.0_92-64\jre\lib\security\cacerts -file D:/wsria.crt -alias  localhost

7. 访问

http://localhost:9527/cas-overlay/login
输入用户名 casuser 密码 Mellon 登录成功

8. 疑难杂症

8.1 eclipse里启动 cas-overlay 超时

表现如下:
1. 启动之后 可以访问相应的contextpath, 但eclipse右下角一直是starting…., 最终因为超过启动时限而停止
2. 这种现象时有时没有。。。。
解决:
1. 直接进行Tomcat原生启动。
2. 如果有自定义的Server端开发需求,将启动时间配置足够长 (确实有点low了)

8.2 java.lang.UnsatisfieldLinkError

解决:
1. 原因是 WEB-INF\lib 下多出一个 javax.el-api-3.0.0.jar 。
2. 删除即可。

8.2 log4j2.xml缺失

cas-server-webapp-4.2.7.war中的 log4j2.xml 不知为何没有出现在最终的发布包中

解决:
1. 从 cas-server-webapp-4.2.7.war 下的 WEB-INF\classes\log4j2.xml 拷贝一份到 eclipse项目下的 src/main/resources 中。

  1. cas 4.2.7 maven cas-overlay部署服务端
  2. cas4.2.x修改为支持http协议
  3. 使用eclipse构建cas服务端的war部署包
  4. 自定义认证之重写Credential - 文章很不错,不过是5.2的。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值