配置 JAVA 客户端

简介: 一、部署  1、添加客户端到你的项目中            ·手动下载下载cas-client,地址:http://www.ja-sig.org/downloads/cas-clients/,然后解压cas-client-3.1.12.zip,在modules文件夹中有需要的jar包,                         请根据自己的项目情况选择使用,把相应的jar包放到你项目WEB-INF/lib下。

一、部署

  1、添加客户端到你的项目中

            ·手动下载下载cas-client,地址:http://www.ja-sig.org/downloads/cas-clients/,然后解压cas-client-3.1.12.zip,在modules文件夹中有需要的jar包,                         请根据自己的项目情况选择使用,把相应的jar包放到你项目WEB-INF/lib下。

             我使用的是 cas-client-3.2.1-release ,需要拷贝如下的包到指定目录下:

cas-client-core-3.2.1

cas-client-integration-tomcat-v7-3.2.1 

commons-logging-1.1

commons-codec-1.4


             ·使用maven

                              

[html]  view plain copy
  1. <!-- cas -->  
  2. <dependency>  
  3.     <groupId>org.jasig.cas.client</groupId>  
  4.     <artifactId>cas-client-core</artifactId>  
  5.     <version>3.1.12</version>  
  6. </dependency>  

二、配置

在客户端项目的web.xml配置过滤器

                        

[html]  view plain copy
  1. <!-- ======================== 单点登录开始 ======================== -->  
  2.     <!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 -->  
  3.     <listener>  
  4.         <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
  5.     </listener>  
  6.   
  7.     <!-- 该过滤器用于实现单点登出功能,可选配置。 -->  
  8.     <filter>  
  9.         <filter-name>CAS Single Sign Out Filter</filter-name>  
  10.         <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class>  
  11.     </filter>  
  12.     <filter-mapping>  
  13.         <filter-name>CAS Single Sign Out Filter</filter-name>  
  14.         <url-pattern>/*</url-pattern>  
  15.     </filter-mapping>  
  16.   
  17.     <!-- 该过滤器负责用户的认证工作,必须启用它 -->  
  18.     <filter>  
  19.         <filter-name>CASFilter</filter-name>  
  20.         <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
  21.         <init-param>  
  22.             <param-name>casServerLoginUrl</param-name>  
  23.             <param-value>https://www.travel.com:8443/cas/login</param-value>  
  24.             <!--这里的server是服务端的IP -->  
  25.         </init-param>  
  26.         <init-param>  
  27.             <param-name>serverName</param-name>  
  28.             <param-value>http://www.travel.com:8080</param-value><span style="color:#FF0000;"> ①</span>  
  29.         </init-param>  
  30.     </filter>  
  31.     <filter-mapping>  
  32.         <filter-name>CASFilter</filter-name>  
  33.         <url-pattern>/*</url-pattern>  
  34.     </filter-mapping>  
  35.   
  36.     <!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->  
  37.     <filter>  
  38.         <filter-name>CAS Validation Filter</filter-name>  
  39.         <filter-class>  
  40.             org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>  
  41.         <init-param>  
  42.             <param-name>casServerUrlPrefix</param-name>  
  43.             <param-value>https://www.travel.com:8443/cas</param-value>  
  44.         </init-param>  
  45.         <init-param>  
  46.             <param-name>serverName</param-name>  
  47.             <param-value>http://www.travel.com:8080</param-value>  <span style="color:#FF0000;"></span>  
  48.         </init-param>  
  49.     </filter>  
  50.     <filter-mapping>  
  51.         <filter-name>CAS Validation Filter</filter-name>  
  52.         <url-pattern>/*</url-pattern>  
  53.     </filter-mapping>  
  54.   
  55.     <!-- 该过滤器负责实现HttpServletRequest请求的包裹, 比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。 -->  
  56.     <filter>  
  57.         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
  58.         <filter-class>  
  59.             org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
  60.     </filter>  
  61.     <filter-mapping>  
  62.         <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
  63.         <url-pattern>/*</url-pattern>  
  64.     </filter-mapping>  
  65.   
  66.     <!-- 该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。 比如AssertionHolder.getAssertion().getPrincipal().getName()。 -->  
  67.     <filter>  
  68.         <filter-name>CAS Assertion Thread Local Filter</filter-name>  
  69.         <filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>  
  70.     </filter>  
  71.     <filter-mapping>  
  72.         <filter-name>CAS Assertion Thread Local Filter</filter-name>  
  73.         <url-pattern>/*</url-pattern>  
  74.     </filter-mapping>  
  75.   
  76.     <!-- ======================== 单点登录结束 ======================== -->  

三、常见错误:

错误1、

                           

         若出现以上错原因是:你在客户端的web.xml中①,②的配置有误。


问题2、

                         

[plain]  view plain copy
  1. javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:   
  2. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:   
  3. unable to find valid certification path to requested target  

 若出现次错误是有与你客户端的证书有问题。重新导入你证书。

相关链接: http://www.jyothis.co.in/2011/11/12/javax-net-ssl-sslhandshakeexception/


问题3:TOMCAT 严重: Error filterStart

缺少必要的 jar 包,要是 tomcat 支持 cas-client,需要如下jar 包:

cas-client-core-3.2.1
cas-client-integration-tomcat-v7-3.2.1 
commons-logging-1.1
commons-codec-1.4


问题4:(windows xp已导入证书) 严重: java.security.cert.CertificateException: No name matching ctsso.zte.com.cn found
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No name matching ctsso.zte.com.cn found

This happens because, quoting from lots of places out there:

Java by default verifies that the certificate CN (Common Name) is the same as host name in the URL. If the CN in the certificate is not the same as the host name, your web service client fails.

翻译过来就是: 制作证书时,输入的 CN 名称必须和 URL的主机域名 一样(java的默认验证规则),否则就会出现上述错误

参考资料: http://bluefoot.info/howtos/how-to-avoid-java-security-cert-certificateexception-no-name-matching-localhost-found/



目录
相关文章
|
10月前
|
存储 搜索推荐 算法
Java 大视界 -- Java 大数据在智能金融理财产品风险评估与个性化配置中的应用(195)
本文深入探讨了Java大数据技术在智能金融理财产品风险评估与个性化配置中的关键应用。通过高效的数据采集、存储与分析,Java大数据技术助力金融机构实现精准风险评估与个性化推荐,提升投资收益并降低风险。
Java 大视界 -- Java 大数据在智能金融理财产品风险评估与个性化配置中的应用(195)
|
10月前
|
人工智能 前端开发 Java
2025年WebStorm高效Java开发全指南:从配置到实战
WebStorm 2025不仅是一款强大的JavaScript IDE,也全面支持Java开发。本文详解其AI辅助编程、Java特性增强及性能优化,并提供环境配置、高效开发技巧与实战案例,助你打造流畅的全栈开发体验。
778 4
|
11月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
293 56
|
12月前
|
人工智能 Java API
MCP客户端调用看这一篇就够了(Java版)
本文详细介绍了MCP(Model Context Protocol)客户端的开发方法,包括在没有MCP时的痛点、MCP的作用以及如何通过Spring-AI框架和原生SDK调用MCP服务。文章首先分析了MCP协议的必要性,接着分别讲解了Spring-AI框架和自研SDK的使用方式,涵盖配置LLM接口、工具注入、动态封装工具等步骤,并提供了代码示例。此外,还记录了开发过程中遇到的问题及解决办法,如版本冲突、服务连接超时等。最后,文章探讨了框架与原生SDK的选择,认为框架适合快速构建应用,而原生SDK更适合平台级开发,强调了两者结合使用的价值。
13832 33
MCP客户端调用看这一篇就够了(Java版)
|
12月前
|
存储 网络协议 Java
Java获取客户端IP问题:返回127.0.0.1
总结:要解决Java获取客户端IP返回127.0.0.1的问题,首先要找出原因,再采取合适的解决方案。请参考上述方案来改进代码,确保在各种网络环境下都能正确获取客户端IP地址。希望本文对您有所帮助。
707 25
|
Java Shell 数据库
【YashanDB知识库】调用外部UDF未能识别Java环境配置
【YashanDB知识库】调用外部UDF未能识别Java环境配置
【YashanDB知识库】调用外部UDF未能识别Java环境配置
|
Java Linux iOS开发
如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH
本文详细介绍如何在Windows和Linux/macOS系统上配置Java环境变量。
19013 12
|
前端开发 NoSQL Java
【Java若依框架】RuoYi-Vue的前端和后端配置步骤和启动步骤
本文介绍了如何配置和启动基于Java的若依(RuoYi)项目,涵盖后端和前端的详细步骤。首先,准备Redis、MySQL以及IDE(如Idea和VS)。接着,通过GitHub获取代码并导入到IDE中,执行必要的SQL文件和配置数据库密码。然后,启动Redis并进行相关配置。最后,按照前端配置步骤克隆前端代码库,打开终端执行命令完成前端配置。整个过程详细记录了每一步的操作,帮助开发者顺利部署若依项目。 如果你觉得有帮助,请点赞、关注和收藏,这将是我持续分享的动力!
8256 4
|
前端开发 Java 开发工具
Git使用教程-将idea本地Java等文件配置到gitte上【保姆级教程】
本内容详细介绍了使用Git进行版本控制的全过程,涵盖从本地仓库创建到远程仓库配置,以及最终推送代码至远程仓库的步骤。
1825 0