在cas server中登录后怎么取得当前的用户名

问题描述:

在网上搜索到很多资料都是讲述在cas client中取得当前用户名的方法,请问在cas server中登录后怎么取得当前的用户名。

在这里还有一个问题请教,使用cas 单点登录,那么注册这个功能(还有包括修改密码)模块是放在cas server中,还是放在cas client应用中。

谢谢

多个web客户端应用,那么每个地方都做个注册功能,还是所有客户端都统一到某一个客户注册功能。

这两种方式都可以,根据你的需要,如果所有系统的注册数据都一样的话就统一到一个客户注册功能

在client中可以在session中取得用户名
CASReceipt receipt = (CASReceipt )session.getAttribute(CASFilter.CAS_FILTER_RECEIPT);
或者
CASReceipt receipt = (CASReceipt )session.getAttribute("edu.yale.its.tp.cas.client.filter.receipt");

注册这个功能(还有包括修改密码)放到client中,server端只做认证

在server的org.jasig.cas.web.flow.AuthenticationViaFormAction类的doBind方法中
[code="java"]UsernamePasswordCredentials credentials = (UsernamePasswordCredentials) binder.getTarget();[/code]
credentials里就有用户名
在cas client上注册时,把用户和密码再同步到cas server数据库中
就是这个意思

String username = request.getAttribute("credentials").toString();