如何在cas登录成功页面显示用户名
条评论CAS这种本来业务场景就很细分,再加上其上古时代存续至今的特质。估计还在用它的公司已经不多了。间接导致,其中文资料比较匮乏。
领导说,想再cas成功后的欢迎页,也就是casGenericSuccess.jsp
页面,可以显示欢迎:xxx
的字样。
不得不说,这个需求非常常规。然而不仅cas默认没有实现,甚至翻遍google,都很难找到满意的答案。比较有参考价值的可能就是google groups上的这篇。居然要借助额外的jar包(还是个已停止维护的)才能实现。不得已,只能自己想办法。
现在给出我的思路:
- 在
deployerConfigContext.xml
文件中,找到authenticationHandlers
参数,其应该对应一个类。十有八九,那个类是你自己实现的,如果不是,可以自己继承一下原有参数配置的类。 - 然后在那个类里的
authenticate
方法,可以通过追加HttpSession session = RequestContextHolder.getRequestAttributes().getSessionMutex().session as HttpSession
这么一行,获取到session
,这就嗨皮了。 - 可以在
authenticate
方法需要返回true
的时候,之前增加一行session.setAttribute("username",balabala);
,这样我们就顺利把username塞到session
里的 - 最后,修改
casGenericSuccess.jsp
,在需要显示用户名的地方,加入<%=session.getAttribute("username")%>
,就可以实现在登录成功页面显示用户名了 - 如果想显示更复杂数据内容,可以留意下
deployerConfigContext.xml
里面的credentialsToPrincipalResolvers
所对应的类。它的时间节点是判定用户登录成功之后,组织用户信息用的。
本文标题:如何在cas登录成功页面显示用户名
文章作者:牧云踏歌
发布时间:2018-07-20
最后更新:2018-07-20
原始链接:http://www.kankanzhijian.com/2018/07/20/cas_show_username_in_login_success_page/
版权声明:本博客文章均系本人原创,转载请注名出处