请教各位高手cascas 跳转 service问题

当前访客身份:游客 [
当前位置:
我最近做了一个CAS的单点登录系统,大概描述如下:
系统中包含&CAS认证中心,web应用A,web应用B。&这三个应用配置在同一个tomcat服务器上。
问题如下:
&&&&&由于web应用A和B本来都是一个完整的系统,拥有独立的登录系统。现在我把它们集成在CAS上。
但是每次访问的时候,访问连接被拦截到CAS认证中心,登录成功后,又跳转到了原来系统中的登录页面。
我想知道怎么样可以解决这个问题,或者说,怎么可以是CAS在登录成功后跳转的时候可以将登录的信息(用户名和密码)传入目标系统。
原来A系统,登录login&------&&/pub/login.do----&&登录成功
我想知道怎么可以在CAS登录成功后直接把&用户名和密码传送到&/pub/login.do中。
跪求,在线等,期待各位大牛的帮助!
共有5个答案
<span class="a_vote_num" id="a_vote_num_
这个简单啊&
你就是想要一个CAS登陆以后 把其他数据一起带过去吧
参考我的博客:
<span class="a_vote_num" id="a_vote_num_
<span class="a_vote_num" id="a_vote_num_
引用来自“Rayn-瑞恩”的评论@腾勇&大牛,跪求帮助啊,毕业设计啊,急急急。
<span class="a_vote_num" id="a_vote_num_
这个,不难吧,cas登陆成功后有个专项web app应用的参数,好像是targetUrl 设置它作为你应用登陆后的页面就行了,原app的登陆页面就不需要了!
<span class="a_vote_num" id="a_vote_num_
引用来自“抓瓦工人”的评论这个,不难吧,cas登陆成功后有个专项web app应用的参数,好像是targetUrl 设置它作为你应用登陆后的页面就行了,原app的登陆页面就不需要了! 你好,我就是这个意思,但是,CAS登录时只是验证用户名和密码是否匹配,匹配成功后就会跳转到目标页面,但是登录所用的用户名和密码等信息并没有传递给web应用。
我自己就自定义了一个CAS登录时使用的登录页面。并打算不再使用原系统的登录页面。可是我不知道CAS的登录信息怎么传递给 web应用的登录处理程序 /pub/login.do
更多开发者职位上
有什么技术问题吗?
RabonDa...的其它问题
类似的话题cas 3.4.2在部署后,如果no service cas登录成功后将跳转到casGenericSuccess.jsp
如果要修改为no service cas登录成功后会默认跳转到cas客户端的某一应用,应该怎么办,搞了好久都不行,
直接在casGenericSuccess.jsp里面redirect到客户端的某一应用,又会跳转到cas登录页面。
问题补充:
如果从客户端访问时会跳转到cas服务端验证,这时url会增加service参数。
如:http://localhost:8080/cas/login?service=http://****
但是我想实现是直接从
http://localhost:8080/cas/login登录成功后可以直接跳转到客户端一个应用。
尝试在casLoginView.jsp里面增加&input type='hidden' name='service' value='http://****'/&
增加了隐藏的service参数也不行。不知应该怎么办。
stulance 写道访问cas登录页面时的url必须是cas客户端应用的url。这样在登录成功后就会自己跳转到客户端的应用上。
问题补充:我知道。现在我是想两个都支持。
1、通过客户端访问会跳转到CAS服务端验证。
2、如果直接访问CAS服务端,也可以默认跳转到指定的客户端。
修改casGenericSuccess.jsp页面,里面直接redirect的话我试过不行。redirect到客户端的话,对会跳转到CAS服务端验证登录了。。
stulance 写道你这样做用cas还有什么意义?
cas是用于单点登录,目的就在于登录一次后进入别的系统时可以不用再登录。
你直接访问http://localhost:8080/cas/login这个,在casLoginView.jsp里面增加&input type='hidden' name='service' value='http://****'/&这样是没用的,因为后台与页面绑定的bean中并没有service这个属性。而且cas服务端是通过解析url得到要跳转到哪个客户端的。
你如果硬要这样做,有以下几种方式
1、你修改casGenericSuccess.jsp页面,在这个页面中直接redirect到你想去的客户端。
2、修改cas服务端代码,这修改麻烦就大了,不是改一两个文件就能搞定的
问题补充:最终的解决方案:
在casLoginView.jsp页面上增加控制来实现
String service=request.getParameter("service");
if(service==null){
final String url = request.getContextPath() + "/login?service=http://****";
response.sendRedirect(response.encodeURL(url));
}
你可以修改cas客户端代码,加入你要统一跳转的url
你这样做用cas还有什么意义?
cas是用于单点登录,目的就在于登录一次后进入别的系统时可以不用再登录。
你直接访问http://localhost:8080/cas/login这个,在casLoginView.jsp里面增加&input type='hidden' name='service' value='http://****'/&这样是没用的,因为后台与页面绑定的bean中并没有service这个属性。而且cas服务端是通过解析url得到要跳转到哪个客户端的。
你如果硬要这样做,有以下几种方式
1、你修改casGenericSuccess.jsp页面,在这个页面中直接redirect到你想去的客户端。
2、修改cas服务端代码,这修改麻烦就大了,不是改一两个文件就能搞定的
访问cas登录页面时的url必须是cas客户端应用的url。这样在登录成功后就会自己跳转到客户端的应用上。
已解决问题
未解决问题------------------------------------------------------------------------------------------------------------------
CAS退出默认是转向CAS内置的退出页面,在实际应用中需要跳转到自己指定的页面。退出转向决定于org.jasig.cas.web.LogoutController,我们看一下原代码。
protected ModelAndView handleRequestInternal(
final HttpServletRequest request, final HttpServletResponse response)
throws Exception {
final String ticketGrantingTicketId = this.ticketGrantingTicketCookieGenerator.retrieveCookieValue(request);
final String service = request.getParameter(&service&);
if (ticketGrantingTicketId != null) {
this.centralAuthenticationService
.destroyTicketGrantingTicket(ticketGrantingTicketId);
this.ticketGrantingTicketCookieGenerator.removeCookie(response);
this.warnCookieGenerator.removeCookie(response);
if (this.followServiceRedirects && service != null) {
return new ModelAndView(new RedirectView(service));
return new ModelAndView(this.logoutView);
可以看出,当this.followServiceRedirects && service != null时才会跳转到自己指定的view,service应该都比较熟悉了,它是客户传的参数,
指定cas中心转向哪里,但我们仅仅传service 还是不行的,还需要把followServiceRedirects属性设为true,下面看看如何修改这个属性
修改cas-servlet.xml配置文件中的logoutController,新增属性p:followServiceRedirects=&true&,修改后如下:
&bean id=&logoutController& class=&org.jasig.cas.web.LogoutController&
p:centralAuthenticationService-ref=&centralAuthenticationService&
p:logoutView=&casLogoutView&
p:followServiceRedirects=&true&
p:warnCookieGenerator-ref=&warnCookieGenerator&
p:ticketGrantingTicketCookieGenerator-ref=&ticketGrantingTicketCookieGenerator& /&
&logoutController&
&org.jasig.cas.web.LogoutController&
p:centralAuthenticationService-ref
&centralAuthenticationService&
p:logoutView
&casLogoutView&
p:warnCookieGenerator-ref
&warnCookieGenerator&
p:ticketGrantingTicketCookieGenerator-ref
&ticketGrantingTicketCookieGenerator&
&followServiceRedirects&
退出页面如下所示
service=http://app:8080/app&&Logout&/
相关 [cas] 推荐:
1、悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作. 悲观锁的实现,往往依靠底层提供的锁机制;悲观锁会导致其它所有需要锁的线程挂起,等待持有锁的线程释放锁. 2、乐观锁:假设不会发生并发冲突,每次不加锁而是假设没有冲突而去完成某项操作,只在提交操作时检查是否违反数据完整性. 如果因为冲突失败就重试,直到成功为止. 乐观锁大多是基于数据版本记录机制实现. 为数据增加一个版本标识,比如在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现. 读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一. 此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据.
- 开源软件 - ITeye博客
最近一段时间研究的cas,不知道是什么原因,可能自己最近太浮躁了,没有沉下心来去研究,所以一直拖着,将近拖了一周半的时间,上周的周总结,确保一定要解决的问题,今天还是横下心来,处理完这个问题,我是一个对于技术痴迷的人,对于现在研究出来这个结果非常高兴,与大家分享一下:.
注明:本文所讲的至少怎么配置,但是具体的原理和细节会在稍后的时间里更新给大家,如有不对的地方希望大家指出来,共同学习和探讨一下.
配置步骤:.
在网上搜索这个内容铺天盖地的都是,但是根据步骤来出现各种各样的问题,现在我把我实现方式与大家分享,废话又是一堆,我们进入正题:.
- 互联网 - ITeye博客
shiro与CAS集成以后的单点退出. 效果任何一个应用退出以后 所有应用都要重新登录. 实现思路shiro退出系统以后重新定向到cas的退出. 1.重新配置shiro的登出跳转.
shiro退出以后跳转到cas的退出.
cas退出以后通过service参数跳转回应用界面. 2.覆盖shiro的默认退出实现 . 将配置的logout 覆盖shiro默认的logout. 3.打开cas的退出重定向开关 修改cas中的cas-servlet.xml文件. 将cas.logout.followServiceRedirects:false属性改为cas.logout.followServiceRedirects:true.
- CSDN博客推荐文章
关于CAS很多的原理和基础的配置启动,网上是很多的,我更多是结合我的实践和心得. 需要了解CAS的原理,认证协议,认证流程,可以参考以下文章. 让CAS支持客户端自定义登陆页面——客户端篇. CAS原理与配置-基于CAS的单点登陆的研究(上). 单点登录(SSO)是企业开发的重要问题,在我的毕设项目中,由于要和系统其他开发模块共用用户认证模块,方便共享用户资源,所以需要一个好的SSO解决方案. 一般SSO的实现机制有两种:基于session的和基于cookie的. WebLogic通过Session共享认证信息. Session是一种服务器端机制,当客户端访问服务器时,服务器为客户端创建一个惟一的SessionID,以使在整个交互过程中始终保持状态,而交互的信息则可由应用自行指定,因此用Session方式实现SSO,不能在多个浏览器之间实现单点登录,但却可以跨域;WebSphere通过Cookie记录认证信息.
- CSDN博客架构设计推荐文章
shiro是权限管理框架,现在已经会利用它如何控制权限. 为了能够为多个系统提供统一认证入口,又研究了单点登录框架cas. 因为二者都会涉及到对session的管理,所以需要进行集成. Shiro在1.2.0的时候提供了对cas的集成. 因此在项目中添加shiro-cas的依赖. Shiro对cas集成后,cas
client的配置更加简单了. 原理就是将casFilter添加到到shiroFilter的filterChain中.
shiroFilter是在web.xml中定义的,前文已经讲过. 在Spring项目中集成Shiro和CAS. If you have multiple realms, use the &realms& property
instead.--&
&!--没有单点登录下的配置: --&.
- ITeye博客
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一. SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 耶鲁大学(yale)开发的单点登录(Single Sign On)系统称为CAS(Central Authentication Service)被设计成一个独立的Web应用程序(cas.war). CAS在2004年12月成为Jasig项目,所以也叫JA-SIG CAS. 本文中服务器版本基于4.0.0版本,对应的客户端版本为3.2.1;. 官网:
http://jasig.github.io/cas/4.0.0/index.html.
- 互联网 - ITeye博客
CAS单点登录(SSO)完整教程(更新). 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤. 单点登录(SSO):请看百科解释. 本教程使用的SSO服务器是Yelu大学研发的CAS(Central Authentication Server),. CAS Server版本:cas-server-3.4.3.1、cas-server-3.4.10. CAS Client版本:cas-client-3.1.12、cas-client-3.2.1. 教程撰写日期:(第一版)、(一年后更新)、(异常处理).
- CSDN博客架构设计推荐文章
自从CAS 3.4就很好的支持了单点注销功能,配置也很简单. 之前版本因为在CAS服务器通过HttpClient发送消息时并未指定为POST方式,所以在CAS客户端的注销Filter中没有收到POST请求(要知道Filter只对Post请求起作用),也就没有做session销毁处理. 两个业务系统APP1和APP2. 在没有配置单点退出时,效果是这样子的. 1:登录APP1,然后经过CAS认证后进入APP1,再访问APP2无需要认证. 2:在APP1中连接到cas的logout地址,现象注销成功界面,然后再访问APP1,还是可以进去的,因为APP1将用户的登录票据存入了session. 那么实现了单点退出后的效果应该是这样子的:.
- Delicious/searchfull
该方式通过获取CAS系统里的角色,来支持CAS与Spring Security的关联,注意该文章authorities部分. 一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分. 用户认证指的是验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统. 用户授权指的是验证某个用户是否有权限执行某个操作. 在一个系统中,不同用户所具有的权限是不同的. 比如对一个文件来说,有的用户只能进行读取,而有的用户可以进行修改. 一般来说,系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限. 对于上面提到的两种应用情景,Spring Security 框架都有很好的支持.
- 互联网 - ITeye博客
CAS退出默认是转向CAS内置的退出页面,在实际应用中需要跳转到自己指定的页面. 退出转向决定于org.jasig.cas.web.LogoutController,我们看一下原代码.
可以看出,当this.followServiceRedirects && service != null时才会跳转到自己指定的view,service应该都比较熟悉了,它是客户传的参数,. 指定cas中心转向哪里,但我们仅仅传service 还是不行的,还需要把followServiceRedirects属性设为true,下面看看如何修改这个属性. 修改cas-servlet.xml配置文件中的logoutController,新增属性p:followServiceRedirects=&true&,修改后如下:.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。spring security3 cas4整合 登陆成功后应用端获取不到用户 求大神帮忙
[问题点数:40分]
spring security3 cas4整合 登陆成功后应用端获取不到用户 求大神帮忙
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 cas 跳转 service 的文章

 

随机推荐