配置 JAVA 客户端

一、部署

  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 plaincopy

  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 plaincopy

  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 plaincopy

  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/

时间: 2024-12-22 12:04:27

配置 JAVA 客户端的相关文章

Solr JAVA客户端SolrJ 4.9使用示例教程

简介         SolrJ是操作Solr的JAVA客户端,它提供了增加.修改.删除.查询Solr索引的JAVA接口.SolrJ针对Solr提供了Rest 的HTTP接口进行了封装,SolrJ底层是通过使用httpClient中的方法来完成Solr的操作. SolrJ/Solr 跨版本兼容性     SolrJ通常向后保持兼容性,可以使用新版本的SolrJ访问较旧的Solr,反之亦然.建议使用同Solr server同版本的SolrJ,      详见http://wiki.apache.o

ZPush--基于netty4实现的苹果通知推送服务(APNs)Java客户端

简单说下实现苹果通知推送服务(APNs)客户端的一些要注意的地方: 使用长连接: sanbox服务器是没用的,调试时直接用"gateway.push.apple.com"域名: 对于错误的Notification,苹果会回应一个Error response,里面有个identifier,在这个identifier之后的Notification全都失败: 因此发送者要缓存已经发送的Notification,最好设置Notification identifier为增长的整数序列,当收到Er

Memcached学习笔记 — 第四部分:Memcached Java 客户端-gwhalin(1)-介绍及使用

 介绍 Memcached java client是官方推荐的最早的memcached java客户端.最新版本:java_memcached-release_2.6.1. 官方下载地址:https://github.com/gwhalin/Memcached-Java-Client 采用阻塞式SOCKET通讯,据说目前版本进行了很多优化,性能有所提高(只看过1.5的源代码,还没来及看最新的) 提供key方式的连接池,默认连接池key为default.(老版本了).2.6.1版本支持apac

Mycat(6):聊天消息表,按月分表 java客户端跨月查询数据

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/47039103 未经博主允许不得转载. 1,业务需求 上次分析聊天业务按照月进行拆.http://blog.csdn.net/freewebsys/article/details/47003577 具体拆分方案已经有了: 但是在操作的时候还是有点小问题,但基本上是按照这个设计实现的. 首先是mycat的,mycat正式版本是1.3.0.3-release,但是这个不包括Parti

电信网管中的Java客户端(二)

客户端|网管 电信网管中的Java客户端(二) 1.概述前文讲述了用Java开发电信网管界面系统遇到的困难.其中,制作网络拓扑图是我们第一个必须克服的困难.本文概述如何使用和制作网络拓扑图的产品和方法和思路. 2.电信网络拓扑组件的要求网络拓扑图是电信网管客户端的核心.对于电信网络,在使用任何网络拓扑组件时,必须注意电信网络的一些特点: · 数据量大.一般电信网络的规模都比较大,网络设备数量多,拓扑复杂.网络拓扑图界面必须考虑到能够处理大数据量的网络节点和连接. · 多层次展示网络.在一个综合电

JAVA客户端调用memcached的比较

1.memcached client for java 客户端API:memcached client for java 网址:http://www.whalin.com/memcached 最新版本:java_memcached-release_2.0.1 操作示例: Java代码 import com.danga.MemCached.*; import org.apache.log4j.*; public class TestMemcached { public static void ma

为Linux配置Java Home变量

在Linux中配置Java Home变量,如果你在网上搜索一下的话,可能找到的大多数答案都是: export Java Home=YOUR/JAVA/PATH 这会有一个问题,就是一这种方式设置的变量只对当前用户的当前会话有效,如果你打开另外一个shell执行: echo $Java Home 所显示的结果仍是空值.当你下次开机的时候还要重新设置一遍,所以不推荐使用此方法,所以要为Linux配置Java Home变量,并且要实现一次配置终身使用只需要按照一下方法配置即可: 以root权限打开/e

java 客户端 服务器-java客户端和服务器通信

问题描述 java客户端和服务器通信 1C try{ Socket s=new Socket(""127.0.0.1""9997); System.out.println(s); InputStreamReader isr=new InputStreamReader(s.getInputStream()); br=new BufferedReader(isr);//接受客户端的消息 pw =new PrintWriter(s.getOutputStream()tru

nginx中如何配置java与php?使两个网站都能访问

问题描述 nginx中如何配置java与php?使两个网站都能访问 现在在nginx(使用的80端口)中配置的java程序能够正常使用,使用的是8080端口,配置的php程序使用的appserv服务使用的是82端口,目前不能正常使用,怎样配置或是程序怎样放置才能使两个程序都能够与相应的域名对应起来呢?求大神赐教,谢谢 解决方案 请参考:nginx 多站点配置方法集合http://www.jb51.net/article/27533.htm