鱼在云中游 2018-10-15 10:20 采纳率: 28.6%
浏览 7036
已结题

JAVA CAS 单点登录 登录成功后 跳转指定URL的问题

假设目前有三个系统: cas app1 app2
当访问app1时大致请求流程为
app1-cas-app1
需实现:
app1-cas-app2
访问app1 ,重定向到cas认证, 认证成功后重定向到app2 (app2类似于门户系统) 该操作只在登录时执行

目前 CAS 默认是重定向回app1
app1系统使用Spring Security集成 CAS 可通过 SecurityConfig 实现

@Bean
public AuthenticationSuccessHandler authenticationSuccessHandler() {
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setDefaultTargetUrl(successUrl);
return successHandler;
}

但是现在另有子系统app2 没有用 Security作为安全框架 应该怎么配置?
如果我在app1的web.xml中配置
图片说明
这样会导致app1的所有请求都会跳转到app2中
请各路神仙不吝赐教

  • 写回答

1条回答

  • 玄尺 2018-10-15 12:50
    关注

    我整理一下:
    CAS作为单点登录系统,唯一的作用就是验证权限,然后将认证消息保存到gobal session中。
    你第一个系统是app1,先判断一下是否是登录状态,如果没有登录状态跳到cas认证,认证通过之后将标志位改成已经登录状态。现在的问题是app1跳到cas,然后跳到app2。
    这个功能应该这么做:
    1、将需要app1 -> cas -> app2的链接,app1发送给cas的请求需要这样:http://cas?redictPage=app2/a/b/c
    2、cas拿到链接之后首先验证密码,check通过之后再判断需要跳转的地址:redictPage,交给cas自己跳转到app2/a/b/c
    注意:
    1、app2/a/b/c这个需要使用base64编码或者采用urlEncode一下
    2、如果功能不是很复杂,可以自己实现这种跳转功能,借助spring security这种框架解决这种比较自由的功能不是很方便,除非能够把它的文档看的很溜。

    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘