【SSO单点系列】(6):CAS4.0 之中文乱码

 

CAS登录会将登录名回传给客户端以xml的格式   但是回传后乱码客户端无法正确解析

二、解决方法

ServiceValidateController.java

private ModelAndView generateSuccessView(final Assertion assertion, final String proxyIou) {
    String name=assertion.getPrimaryAuthentication().getPrincipal().getId();
    final ModelAndView success = new ModelAndView(this.successView);
    success.addObject(MODEL_NAME, URLEncoder.encode(name));
    success.addObject(MODEL_ASSERTION, assertion);
    success.addObject(MODEL_PROXY_GRANTING_TICKET_IOU, proxyIou);
    return success;
}

 

添加参数对用户名进行编码

左为原代码 右为修改后代码

 

 

客户端在接收到时进行解码

 

posted @ 2016-04-21 17:29  打不死的小强hedgehog  阅读(386)  评论(0编辑  收藏  举报