使用的是以下配置信息:
#cas服务端地址
cas.server-url-prefix=http://XXX/cas
#cas服务端登录地址
cas.server-login-url=http://XXX/cas/login
#客户端服务器地址
cas.client-host-url=http://XXX:8888/signon/login/sso
#Ticket校验器
cas.validation-type=cas
登录接口:
@RestController
public class DemoController {
@RequestMapping("/signon/login/sso")
public Map login(HttpServletRequest request) throws Exception{
HttpSession session = request.getSession();
Object a=request.getUserPrincipal();
AttributePrincipalImpl attributePrincipal=(AttributePrincipalImpl) request.getUserPrincipal();
Map<String,Object> info=attributePrincipal.getAttributes();
return info;
}
}
经查询后发现是因为校验属性的问题。如果validation-type的属性值是CAS的话接收到的信息是只有UserName的不能够接收到Server端自定义的返回信息的。
#cas服务端地址
cas.server-url-prefix=http://XXX/cas
#cas服务端登录地址
cas.server-login-url=http://XXX/cas/login
#客户端服务器地址
cas.client-host-url=http://XXX:8888/signon/login/sso
#Ticket校验器使用Cas30ProxyReceivingTicketValidationFilter
cas.validation-type=cas3
设置成cas3之后就可以获取到Server端自定义的反回参数也就是包含UserID等一些信息的。