简单的介绍下我这里的需求,我这里前台是c#后台是Java提供服务,通信采用的是socket机制。
环境
- weblogic 服务器
- c#客户端
- Java提供后台服务
- 三方权限管理平台(ISC)
需求
按照测试人员的要求,客户端需要通过一个网页去获取用户信息实现自登录的过程,简单的说,用户不需要在客户端输入用户名和密码登录
实现过程
Java服务端
- 首先我们需要自己在后端写一个页面,我这里是index.jsp页面
- 需要定义一个接口
- 配置放行权,默认是isc权限管理平台
- 通过 我们的接口去调用isc里的获取当前登录的用户信息
- 将信息返回到此页面上
- 调用客户端提供的登录方法,并将获取到的信息带过去
客户端
- 对数据进行解密操作
- 调用后台相关接口即可(如跳过正常登录的操作,直接登进去)
简单的说,首先是访问我后台的接口------------------->此时 默认跳转的地址是isc(统一权限管理平台)---------->将用户信息带回来并返回到index.jsp页面--------->页面的简单处理然后掉用客户端提供的跳过窗体登录的方法将信息传过去即可。
当我们将包部署到weblogic上时,跳转的过程出现了以下错误:
cause of ServletException.
org.jasig.cas.client.javafilter.validation.TicketValidationException: 未能够识别出目标 'ST-887-ikaqqy3baEfkerR24ZUP-cas01.example.org'票根.......
通过百度得知,问题的原因大概是当请求过来时,请求相应的时间大于服务器等待的时间,导致服务器提前关闭连接导致,反正咋也不清楚,咋也不知道.......
解决办法
找到weblogic的web.xml配置文件,并在过滤器中添加如下配置
<init-param>
<param-name>serverName</param-name>
<param-value>http://ip:端口号</param-value>
</init-param>
重启服务,完美解决问题,亲测有效......,不一定能解决你们的问题,仅供参考
网友评论