最近在做与单点登录有关的内容,
软件有
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,使其保存一段时间,但没找到,熟悉的告诉我一声再次感谢
软件有
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,使其保存一段时间,但没找到,熟悉的告诉我一声再次感谢
解决方案 »
- 请教一个解决方式,急急!
- jdbc事务回滚必须是同一个连接吗
- 谁能帮我解释详细解释下这个下面程序 尤其是前两句 ActionContext
- (100分)继续骚扰大家,Spring与Struts1.x集成的问题
- AJAX刷新多个DIV中的内容问题????
- 请问jstl能否格式化显示Calendar型的日期?应该怎么做?急................
- 求助:在oc4j下运行jms的聊天程序问题,高手请进!
- 关于 Java开发利器:Hibernate开发及整合应用大全的问题
- 100分看看我下面的socket代码
- jboss5下,一个ear中的war如何共享session
- 请教Hibernate、JDBC和存储过程的性能问题,三者如何取舍
- 睡不着,考虑一个问题
1. 应该是要将roller的资源加入到CAS client filter的范围内,才可以做到
2. 最近刚刚做过一个简单的SSO,同一个域名下的两个war包做SSO,并且只能是先登录到A应用,然后无需验证登录到B应用,最简单的做法就是在B应用中读取A应用写在用户浏览器中的用户cookie就可以。3. 可以制定logout页面,表单提交到cas 服务器端,由cas服务器端注销用户(取消tgt cookie),并且发送通知到所有应用注销session
http://blog.sina.com.cn/s/blog_51e917db01009v6n.html?retcode=04. 关于cookie其实是有两类,一个是ticket granting ticket cookie,另外一个是service ticket cookie,不清楚你具体是想要设置哪一类的时间,不过这个都是可以配置的,详情请见如下链接:
https://wiki.jasig.org/display/CASUM/Ticket+Expiration+Policy
https://wiki.jasig.org/display/CASUM/HOWTO+Configure+Single+Sign+On+Session+Timeout如果能解决问题,请给多点分吧,花了好久答您老的问题:)
是否可以将用户角色权限什么放在cas服务器端,用户根据service+service ticket进行校验完成之后,返回用户名,并且返回权限角色,不过这样做不知道cas server是否支持,搞不好需要DIY cas server代码.hehe
这个感觉还是放在cas 客户端最好,毕竟各个应用的权限可能会不相同,这样各自只需要管理自己的权限比较灵活你给的链接还在看……
解决了统一注销
http://blog.csdn.net/laorer/archive/2010/07/14/5734407.aspx