CAS同SpringSecurity整合设计AjaxLogin(设计的改进和解释遇到的疑惑)

1.描述页面有:1)TestSSO/simpleLogin-ajax.jsp ajax登录页面

                     2)TestSSO/index.jsp页面

                     3)TestSSO/welcome.jsp页面

 

注意index.jsp页面有两个连接 一个指向welcome.jsp(只有admin可以进入) 一个指向phpBB

 

原先设计方式:在CAS自定义了一个FLOW流进行验证

 

 

使用在cas流里面判断登录成功就返回一个view,登录失败返回一个view,如果这样写的话有个问题:当登录成功后在index页面获取不到用户名,在index中获取到的用户名为匿名用户。只有再进入一个受限页面如welcome页面回来才能正确获取。

 

个人猜测原因(还没研究源码):由于在加入CAS和Spring Security整合中这个过程没完整,完整流程是认证信息->授权,由于我只在CAS端填写了认证信息,没有回到客户端把认证信息封装到认证接口,而当第二次进入有限制的url就会去看是否有认证信息,已经有了并且封装起来,因此才可以取得正确的用户名。

 

2)直接定位到login页面和访问受限页面重定位到login登录成功后跳转的区别:

   1)直接定位到login页面登录的时候登陆成功就会跳到defaultTargetUrl

   2)受限页面重定位到login登录成功后跳转到受限页面

 

3)只使用Spring Security XML中defaultTargetUrl位置 和使用CAS时候defaultTargetUrl的位置

 

 

只有在CAS中提交用户信息然后再通过CAS处理默认访问页,这个流程才完整,像我之前处理的方式只是在CAS中处理,由CAS抛出处理结果没有再到SpringSecurity中处理,因此

<end-state id="statusSuccessCallbackView" view="bean:dynamicRedirectViewSelector" />在自定义流中是必须的。能完成整个流程,而登录失败可以在CAS端抛出。

 

 总结:定义当访问到受限url的时候收集用户认证信息的入口:b:property name="loginUrl" 如下

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值