`

CAS单点登录连接超时解决办法及原因分析

阅读更多

在部署CAS单点登录到生产环境后,由于互联网网速问题影响,默认设置下偶尔会看到java.net.ConnectException:   Connection   timed   out这样的连接超时异常信息,造成无法完成登录问题,我们可以通过增加超时时间来解决这个问题。

 

另外timeout还有可能是网络无法连接造成的结果,可能会遇到DNS配置不正确造成不能通过HttpURLConnection连接CAS Server,同样会有可能造成以上无法登录的结果、同样的异常信息,我们可以试用nslookup命令测试一下网络环境或者其他调试方法测试。

 

 

环境说明:

       JVM SUN JDK 1.5

CAS Server JA-SIG CAS Server 3.2.1

JA-SIG CAS Client for Java 3.1.1

 

设置超时时间(两种方式,任选一种)

1.       JAVA应用程序启动时设置

//设置连接主机的超时时间 ms   

System.setProperty("sun.net.client.defaultConnectTimeout", "300000");   

//设置从主机读取数据的超时时间   

System.setProperty("sun.net.client.defaultReadTimeout", "300000");  

2. JAVA_OPTS环境变量里设置

  -Dsun.net.client.defaultConnectTimeout=300000

  -Dsun.net.client.defaultReadTimeout=300000

 

另外,如果CAS Server与客户端应用没有部置在一个WEB服务器下,我们还可以通过CAS Server里的WEB-INF\spring-configuration\applicationContext.xml文件设置超时时间,默认超时设置如下:

<bean id="httpClient" class="org.jasig.cas.util.HttpClient"

       p:readTimeout="5000"

       p:connectionTimeout="5000" />

我们把超时间设长点即可。

 

别忘了重启WEB服务器 

 

原因:

          

CAS单点登录原理图

 

图中元素

指代与解释

CAS

CAS ServerCAS服务器

Web resource

CAS Client绑定的应用系统,如论坛系统,我们可以简称其为客户端或客户端应用

Web browser

我们常用的浏览器,如IEFireFox

S

Service,即请求的服务,在此我们可以说成请求的URL

T

Ticket,即票据,客户端向CAS服务器取当前登录用户身份的凭证

C

Cookie,可以保存在浏览器中的cookie

 

 

流程解释:

当用户在浏览器中访问web应用的某个受保护的服务[S],用户的请求将被web应用重定向到CAS服务器,CAS服务器提供响应让用户登录,用户提交用户名与密码,CAS服务器收到请求处理验证,通过验证则在浏览器中重定向到原来的web应用的服务[S]同时在浏览器中生成cookie并带有一个[T]票据查询参数给[S](否则提示错误要求继续输入),web应用再次收到原来的[S]请求,此时web应用会收到一个[T]票据,web应用集成的CAS Client通过socket连接传输[S][T]参数到CAS服务器,CAS服务器通过[T]找到对应用的用户身份标识返回给web应用,web应用收到xml形式的用户身份标识,web应用集成的CAS Client解释出有用户身份标识,就通过了认证,整个认证流程结束。

 

见上图中红色框的连接,客户端应用发送STCAS 取登录的用户标识(用户名)时,是通过JAVA代码用HttpURLConnection直接发送请求与接收CAS的响应信息,我们前面提到的超时也就是此处相关代码抛出的异常

  • 大小: 17.1 KB
4
0
分享到:
评论
1 楼 jelver 2008-12-14  
不错,最近也在整cas

相关推荐

    java开源包8

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    spring security 参考手册中文版

    使用protect-pointcut添加安全性切入点 66 6.5默认AccessDecisionManager 67 6.5.1自定义AccessDecisionManager 67 6.6验证管理器和命名空间 67 7.示例应用程序 69 7.1教程示例 69 7.2联系人 69 7.3 LDAP样本 71 7.4...

    java开源包4

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    汪文君高并发编程实战视频资源全集

    │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │ 高并发编程第一阶段27讲...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第一阶段25讲、多Produce多Consume之间的通讯导致出现程序假死的原因分析.mp4 │ 高并发编程第一阶段26讲、多线程下的生产者消费者模型,以及详细介绍notifyAll方法.mp4 │ 高并发编程第一阶段27讲...

    Java资源包01

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包1

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包11

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包2

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包3

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包6

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包5

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包10

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包7

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包9

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    java开源包101

    2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/Grizzly),支持多种序列化/反序列化(Java/Hessian/PB); 7、支持自定义...

    JAVA上百实例源码以及开源项目源代码

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

    JAVA上百实例源码以及开源项目

    1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...

Global site tag (gtag.js) - Google Analytics