會員註冊 / 登入  |  電腦版  |  Jump to bottom of page

JForum中文社群 JForum Chinese Users Community » CAS集成JForum单点登陆

發表人: wu_net2008, 八級學員
2008-07-30 09:58:59
最近这两天在研究CAS集成单点登陆,我用了自己的一个实现类CasUserSSO来继承了SSO类,有一点问题我始终没搞明白,我的实现类在什么时候才被执行呢?从日志上看,CasUserSSO只在网站刚被加载完后的第一次访问时被执行了一次,之后就再也没有执行过了,我觉得SSO应该类似于一个Filter,如果没有登陆都应该去CAS那边取用户名,如果取不到按照游客处理,取到了就自动登陆。但是现在SSO类怎么也不执行了。小弟对这块不太明白,不知道是不是配置的不对,SystemGlobals.propertise里面有关SSO的三项也配了。求助中!~!~

發表人: andowson, 七段學員
2008-07-30 13:08:53
你可以看一下
ControllerUtils.java這個檔案:
protected void checkSSO(UserSession userSession)

{
try {
SSO sso = (SSO) Class.forName(SystemGlobals.getValue(ConfigKeys.SSO_IMPLEMENTATION)).newInstance();
String username = sso.authenticateUser(JForumExecutionContext.getRequest());


發表人: wu_net2008, 八級學員
2008-07-30 13:39:34
这个方法我看过了,根本找不到被调用的地方,这个类也就是在JForum.java里出现过,其他地方都无关紧要。问题还是没有解决,正在尝试其他途径。继续求助中...

發表人: wu_net2008, 八級學員
2008-07-30 14:50:02
因为时间紧迫,正在尝试另一套解决方案,取到ticket和username后再获取User对象,然后完全手动将userSession放到SessionFacade里面去,问题有两个,第一,我无法将该用户标示为已登陆,使用SessionFacade.makeLogged();方法也不行。第二,在我再次请求别的页面的时候UserSession就丢失了,又变成了未登陆状态。这是为啥呢?

發表人: wu_net2008, 八級學員
2008-07-31 13:42:50
问题已解决,我将User对象存在了Session中,在每个页面做了个判断,如果没有User对象的话就去Session中取然后装载到SessionFacade中.还有个小问题,因为有个URL被我写死在了header.html中我想用标签把这个URL动态的取出来,因为我想把它写在配置文件里,这样好维护嘛。请问我该怎样写呢?




會員註冊 / 登入  |  電腦版  |  Jump to top of page