CAS接受服务器端返回值中文乱码问题解决方法 您所在的位置:网站首页 cas中文乱码 CAS接受服务器端返回值中文乱码问题解决方法

CAS接受服务器端返回值中文乱码问题解决方法

2023-07-20 05:48| 来源: 网络整理| 查看: 265

CAS接受服务器端返回值中文乱码问题解决方法

这几天在做CAS,客户端使用的是shiro-cas,cas服务器版本4.0.0,shiro-cas版本1.2.6。发现当客户端返回的用户信息中有中文时,会造成乱码。网上搜索都说的时加过滤器,编码什么的,然而并没什么用。通过跟踪代码,发现

造成乱码的原因是shiro-cas中的CasRealm获取CAS服务器返回字符串的时候没有编码

造成的,故有如下解决方法:

重写

AbstractUrlBasedTicketValidator AbstractCasProtocolUrlBasedTicketValidator Cas20ServiceTicketValidator

它们的代码什么的,直接重从他们源代码中复制过来,重点在于将这三个重写的类都增加一个构造方法,在原构造方法的基础上增加一个encoding参数,然后实现自己的CasRealm的时候,增加一个私有属性ticketValidator,重写其中的onInit()、ensureTicketValidator()、createTicketValidator()这三个方法。他们的具体方法都可以直接从CasRealm中拷贝过来,不过createTicketValidator()方法最后返回的时候需要修改为return new MyCas20ServiceTicketValidator(urlPrefix,”utf-8”);

具体代码如下:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有