业务应用使用Portal和SSO做单点登录,访问业务url,地址栏调到了portal登录地...

3个月前

业务应用使用Portal和SSO做单点登录,访问业务url,地址栏调到了portal登录地址,但页面报错:java.lang.StringIndexOutOfBoundsException: String index out of range: -1

访问普元产品知识库(doc.primeton.com),查看本文原文,获得更多普元产品知识,点击此处


【问题描述】

业务系统与PORTAL、Platform7.5的SSO集成,访问业务资源,这时会跳转到portal登录页面,但紧跟着会报错:

报错信息:

 

root cause

 

java.lang.StringIndexOutOfBoundsException: String index out of range: -1

 

         java.lang.String.substring(String.java:1931)

 

         java.lang.String.substring(String.java:1904)

 

         com.primeton.sso.proxy.ProxyLoginServlet.doFirstLogin(ProxyLoginServlet.java:430)

 

         com.primeton.sso.proxy.ProxyLoginServlet.doGet(ProxyLoginServlet.java:179)

 

         com.primeton.sso.proxy.ProxyLoginServlet.doPost(ProxyLoginServlet.java:191)

 

         javax.servlet.http.HttpServlet.service(HttpServlet.java:646)

 

         javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

 

         com.primeton.access.http.impl.WebInterceptorChainImpl.doIntercept(WebInterceptorChainImpl.java:51)

分析发现:地址栏的参数中appid只有ip和端口,如:appId=127.0.0.1:8080,正常的url中还包含了应用名称如:appId=127.0.0.1:8080/default

 


【问题原因】

把应用部署在了tomcat的ROOT目录下(而非常用的webapp),这样部署的结果就是访问页面的URL不用带“应用名”。

而配置了portal代理登录时会使用sso-proxy组件(单点登录代理组件),该组件不支持被集成应用的contextPath为空的情况,所以报错;

可向售后(cservice@primeton.com)申请补丁:SSO_7.0.2_20140623_P1解决这个问题

 

 

 

 

COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。