jasig cas单点登录中的如何统一注销
最近在做与单点登录有关的内容,
软件有
roller4.0.1
jasig CAS 3.3.2
acegi security 的 sample war
已经可以完成统一登录,但碰到以下问题
1.如何在第一次访问 roller时,就能知道用户是否登录了,
a.现在的情况是用户访问roller时,并不清楚是否已经登录了,只有在点击某一个链接时,发现没有权限才会去 cas服务器上检查是否已经登录了,如果没有就会转到 cas的登录界面,登录后转到 roller应用中,如果已经登录了则会直接转到roller的应用中,
b.我希望的是用户第一次访问roller时,就能知道是否已经登录了,如果没有登录,则继续当前的访问,当碰到需要权限时,就转到登录界面,如果已经登录了,则会在头部某个地方显示用户名
我的想法是建一个 filter过滤roller的任何一个 url,然后在首次访问时,就会往session写入一个标记,并转到cas上检查是否已经登录了,但感觉思路还是有点乱
2. 如何统一注册用户,cas只管登录,而每个应用都会包括用户的,如何在cas上注册了新用户后,也能够在roller中注册这个用户,
现在的做法是在roller中重写一个servlet,在里面把用户信息写到数据库中,但查看过 roller的Register代码后,看到里面有个 与SSO相关的代码,似乎有与注册新用户相关,请问如何调用这个现成的来注册新用户
3.如何统一注销
在roller中注销后,也可以在 cas上注销,同时也会可以 acegi sample上注销
我现在的作法是在 roller的注销页面logout-redirect.jsp 加了个 response.sendRedirect(.. cas/logout),结果是可以看到cas上的注销页面,但是再访问acegi时,结果是没有注销的,
4.另外,我没找到 cas中加入 cookie的地方,我想改变cookie,使其保存一段时间,但没找到,熟悉的告诉我一声
再次感谢