-
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
相关推荐
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决网络应用中的身份验证问题。本压缩包提供了CAS服务端自定义认证的实现,以及CAS客户端的配置...
cas 单点登录解决方案 cas 单点登录解决方案是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。随着企业的发展,业务系统的数量...
CAS 5.3 及 Windows AD 域实现单点登录免身份认证 CAS(Central Authentication Service)是一种流行的开源身份验证系统,旨在提供单点登录(SSO)解决方案。Windows AD(Active Directory)则是微软公司推出的目录...
Struts2和CAS单点登录(SSO)的集成是一个常见的Web应用安全实践,它允许用户在一个系统登录后,无须再次输入凭证就能访问其他相互信任的系统。在这个例子中,我们将深入探讨如何在MyEclipse环境下使用Struts2框架与...
本压缩包"集成cas实现单点登录认证.zip"显然包含了关于如何使用CAS(Central Authentication Service)框架集成SSO认证的资源。下面我们将详细探讨相关的知识点。 1. CAS简介:CAS是耶鲁大学开源的一个Web应用的...
基于Java中CAS的单点登录,有服务端的所有源码,将tomcat目录下的所有资源直接拷到Tomcat服务中间件的webapp目录下,阅读tomcat-webapp中的read.txt文档,查看使用说明,适用于第一次开发CAS单点登录的同学们,简单...
CAS单点登录CAS单点登录CAS单点登录CAS单点登录
CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,简称SSO)框架,主要用于解决用户在多个应用系统间切换时需要多次认证的问题。它提供了一个集中式的登录入口,用户只需在一...
springmvc+spring+shiro+cas单点登录实例 加入了登录验证码认证,修改了下首页样式,不过样式没有弄好,很丑的,有空自己再弄下 说明:cas-server是单点登录服务端,用的是maven项目,但是WEB-INF里面的lib目录下面...
CAS(Central Authentication Service)是 Yale 大学开源的一个单点登录协议,它提供了一种集中式的认证方式,简化了多应用系统的身份验证流程。 **单点登录原理** 单点登录的核心在于一个中心认证服务器(CAS ...
CAS(Central Authentication Service)单点登录系统是一种网络身份验证协议,它允许用户通过单一的身份验证过程访问多个应用系统。在本“CAS单点登录demo”中,我们将深入探讨CAS的工作原理、配置步骤以及如何实现...
CAS单点登录操作文档 CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: • 开源的企业级单点登录解决...
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On,SSO)协议。它允许用户通过一个统一的认证系统访问多个应用系统,而无需在每个系统上分别进行登录。本文将深入...
CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On, SSO)系统,它允许用户通过一个入口点登录,然后在多个应用之间无缝切换,而无需再次验证身份。CAS的目的是...
这个压缩包文件包含的是关于CAS单点登录的多语言整合文档和源码,特别提到了PHP客户端和Java客户端的整合。 首先,我们来深入理解一下CAS的基本工作原理。当用户尝试访问受CAS保护的应用时,会被重定向到CAS服务器...
分布式架构中的单点登录(Single Sign-On, SSO)与授权认证是现代企业级应用系统设计的关键组成部分。SSO允许用户在多个应用系统中只需登录一次,就能访问所有相互信任的应用,大大提升了用户体验。本实战课程围绕...
使用struts2+spring+cas实现的单点登录功能,里面包括cas-server3.5.2项目一个,cas-client3.2.1 web项目两个,数据库脚本,请按照里面的说明文档进行部署,希望你们也能配置成功。
cas集成window AD 域实现免身份认证单点登录,cas部署为centos系统,window server 2012 R2
**基于Cas的单点登录实现** 单点登录(Single Sign-On,简称SSO)是一种在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统的技术。它为用户提供了一种方便、高效的访问多系统的方式,同时减少...