关于集成第三方认证中心认证通过后重定向过多问题.原创
金蝶云社区-景高松
景高松
17人赞赏了该文章 246次浏览 未经作者许可,禁止转载编辑于2023年12月26日 14:21:36

image.png

如上图所示.


重定向过多原因:此路径代表认证中心向目标路径发起请求,并携带上了认证参数(此示例为code,也可能是token或其他),但待穿透系统将此认证参数发往认证中心进行认证之后未有效去除此认证参数导致.(因标准CAS登录提供的方法只会去掉ticket而不会处理其它认证参数). 最终导致重复请求并重定向过多. 此描述可参考下图(仅标注认证中心认证完成后的流程,及可能出现重定向过多问题的流程)


image.png

   1-2认证通过,命令客户端携带目标url+code 访问待穿透系统

   3-4带穿透系统使用code从认证中心认证交换用户信息.

   5.认证通过并获得用户信息后,待穿透系统需要处理去除认证参数即(code). 若不做此处理可能出现两种情况(根据EAS版本不同/认证中心不同,现象会不同) 1.重定向次数过多 2.500服务器错误 等



解决方式:反编译AbstractTicketValidationFilter dofilter方法下 

在此处将constructServiceUrl 生成的路径 改造为去掉code参数的路径.request.getparamsMap判断下是否带有code参数,如果带有此参数,请去掉此参数与值,最终构造成不带code的符合规范的路径即可.


image.png


图标赞 17
17人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0