0 0

cas单点登录+ssl双向认证 失败了 在线求解!!!!10

 版本信息:

   cas-server-3.4.2

   cas-client-3.1.10

   jdk1.6

   tomcat 6.0.29

 

描述:

   在一台电脑上同时部署服务端和客户端。

   登录单点系统正常,登录成功后跳转到客户端应用时报错。

   证书我是用jdk自带keytool工具生成的自签名证书。sinosoft.jks 、lfwer.p12

 错误信息:

exception 

java.lang.RuntimeException: java.net.SocketException: Software caused connection abort: recv failed
	org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:295)
	org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)
	org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)
	org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)
	org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)
	org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)


root cause 

java.net.SocketException: Software caused connection abort: recv failed
	java.net.SocketInputStream.socketRead0(Native Method)
	java.net.SocketInputStream.read(SocketInputStream.java:129)
	com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
	com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:789)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.waitForClose(SSLSocketImpl.java:1467)
	com.sun.net.ssl.internal.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:103)
	com.sun.net.ssl.internal.ssl.Handshaker.sendChangeCipherSpec(Handshaker.java:625)
	com.sun.net.ssl.internal.ssl.ClientHandshaker.sendChangeCipherAndFinish(ClientHandshaker.java:907)
	com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:833)
	com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:230)
	com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:529)
	com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:465)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1147)
	com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1131)
	sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)
	sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)
	sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1049)
	sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)
	org.jasig.cas.client.util.CommonUtils.getResponseFromServer(CommonUtils.java:281)
	org.jasig.cas.client.validation.AbstractCasProtocolUrlBasedTicketValidator.retrieveResponseFromServer(AbstractCasProtocolUrlBasedTicketValidator.java:33)
	org.jasig.cas.client.validation.AbstractUrlBasedTicketValidator.validate(AbstractUrlBasedTicketValidator.java:178)
	org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:132)
	org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:102)
	org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:110)

  

  tomcat配置:

 

    <Connector port="8443"  protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="200" scheme="https" secure="true" minSpareThreads="5" maxSpareThreads="75"
			   enableLookups="true" disableUploadTimeout="true"  acceptCount="100"
			   clientAuth="true" sslProtocol="TLS" keystoreFile="E:/ca/sinosoft.jks" keystorePass="sinosoft" truststoreFile="E:/ca/sinosoft.jks" 
			   truststorePass="sinosoft"  />

 

  客户端web.xml配置:

<filter>
<filter-name>CAS Single Sign Out Filter</filter-name>
<filter-class>
org.jasig.cas.client.session.SingleSignOutFilter
</filter-class>
<!-- SSO注销过滤器-->
</filter>
<filter-mapping>
<filter-name>CAS Single Sign Out Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 1) 认证过滤器AuthenticationFilter
检查用户是否需要认证,如果需要直接跳转到登录界面。 -->
<filter>
<filter-name>CAS Authentication Filter</filter-name>
<filter-class>
org.jasig.cas.client.authentication.AuthenticationFilter
</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<!--Cas认证服务器的登陆页面-->
<param-value>https://sinosoft:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>service</param-name>
<!--登录认证完成后跳转到本应用的页面-->
<param-value>
http://192.168.101.119:8081/tomcat/index.jsp
</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter
</filter-class>
<!-- SSO检查是否登录过滤器-->
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://sinosoft:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://192.168.101.119:8081</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

  

2012年4月26日 11:48

3个答案 按时间排序 按投票排序

0 0

AuthenticationFilter 支持单向验证
Saml11AuthenticationFilter 支持双向验证
<filter>
  <filter-name>CAS Authentication Filter</filter-name>
  <filter-class>org.jasig.cas.client.authentication.Saml11AuthenticationFilter</filter-class>

2016年3月23日 21:03
0 0

我也是一台机器部署服务端和客户端,也是一样的问题,你解决了吗?

2013年12月31日 11:55
0 0

这个问题怎么解决的?我也遇到了

2013年9月01日 17:23

相关推荐

    CAS单点登录(SSO)服务端自定义认证+CAS客户端配置+CAS完整使用文档+CAS4.2.7 cas-serv服务端源码 cas-client客户端源码

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...

    cas 单点登录 解决方案.

    cas 单点登录解决方案 cas 单点登录解决方案是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。随着企业的发展,业务系统的数量...

    CAS5.3+windows AD域实现单点登录免身份认证.docx

    CAS 5.3 及 Windows AD 域实现单点登录免身份认证 CAS(Central Authentication Service)是一种流行的开源身份验证系统,旨在提供单点登录(SSO)解决方案。Windows AD(Active Directory)则是微软公司推出的目录...

    struts2+cas单点登陆例子

    Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统登录后,无须再次输入凭证就能访问其他相互信任的系统。在这个例子中,我们将深入探讨如何在MyEclipse环境下使用Struts2框架与...

    集成cas实现单点登录认证.zip

    本压缩包"集成cas实现单点登录认证.zip"显然包含了关于如何使用CAS(Central Authentication Service)框架集成SSO认证的资源。下面我们将详细探讨相关的知识点。 1. CAS简介:CAS是耶鲁大学开源的一个Web应用的...

    基于Java集成CAS单点登录【接部署即可启用】

    基于Java中CAS的单点登录,有服务端的所有源码,将tomcat目录下的所有资源直接拷到Tomcat服务中间件的webapp目录下,阅读tomcat-webapp中的read.txt文档,查看使用说明,适用于第一次开发CAS单点登录的同学们,简单...

    CAS单点登录(java)

    CAS单点登录CAS单点登录CAS单点登录CAS单点登录

    cas单点登录服务端+客户端demo

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决用户在多个应用系统间切换时需要多次认证的问题。它提供了一个集中式的登录入口,用户只需在一...

    springmvc+spring+shiro+cas单点登录实例

    springmvc+spring+shiro+cas单点登录实例 加入了登录验证码认证,修改了下首页样式,不过样式没有弄好,很丑的,有空自己再弄下 说明:cas-server是单点登录服务端,用的是maven项目,但是WEB-INF里面的lib目录下面...

    cas单点登录

    CAS(Central Authentication Service)是 Yale 大学开源的一个单点登录协议,它提供了一种集中式的认证方式,简化了多应用系统的身份验证流程。 **单点登录原理** 单点登录的核心在于一个中心认证服务器(CAS ...

    CAS单点登录demo

    CAS(Central Authentication Service)单点登录系统是一种网络身份验证协议,它允许用户通过单一的身份验证过程访问多个应用系统。在本“CAS单点登录demo”中,我们将深入探讨CAS的工作原理、配置步骤以及如何实现...

    CAS单点登录操作文档

    CAS单点登录操作文档 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决...

    CAS单点登录配置大全

    CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统上分别进行登录。本文将深入...

    CAS单点登录配置

    CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On, SSO)系统,它允许用户通过一个入口点登录,然后在多个应用之间无缝切换,而无需再次验证身份。CAS的目的是...

    CAS单点登录多语言整合文档+源码

    这个压缩包文件包含的是关于CAS单点登录的多语言整合文档和源码,特别提到了PHP客户端和Java客户端的整合。 首先,我们来深入理解一下CAS的基本工作原理。当用户尝试访问受CAS保护的应用时,会被重定向到CAS服务器...

    分布式架构单点登录+授权认证实战 CAS+SpringSecurity视频

    分布式架构中的单点登录(Single Sign-On, SSO)与授权认证是现代企业级应用系统设计的关键组成部分。SSO允许用户在多个应用系统中只需登录一次,就能访问所有相互信任的应用,大大提升了用户体验。本实战课程围绕...

    struts2+spring+cas单点登录

    使用struts2+spring+cas实现的单点登录功能,里面包括cas-server3.5.2项目一个,cas-client3.2.1 web项目两个,数据库脚本,请按照里面的说明文档进行部署,希望你们也能配置成功。

    CAS+windows AD域实现单点登录免身份认证.docx

    cas集成window AD 域实现免身份认证单点登录,cas部署为centos系统,window server 2012 R2

    基于Cas的单点登录实现

    **基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...

Global site tag (gtag.js) - Google Analytics