笔记:shiro单点登陆接入spring boot项目

现有项目1.a.com,我的项目2.a.com给3.a.com(页面)提供api,需要把3.a.com的页面嵌入到1.a.com里,有个通用的认证服务4.a.com,

也就是1.a.com认证后2.a.com就不需要认证了,整个流程中有些注意的地方。

1.所有请求都被拦截做身份认证,明明配置里有个路径是不需要authc的

        map.put(casConfig.getApplicationPath()+"/sso/**", "defaultFilter");
        map.put(casConfig.getApplicationPath()+"/cas", "cas");
        map.put(casConfig.getApplicationPath()+"/logout", "logoutFilter");
        map.put(casConfig.getApplicationPath()+"/**", "anon");

这个问题是由于defaultFilter,logoutFilter,cas这三个对应的filter是被注入到spring容器的,spring boot把这三个filter自动加到web filter了,并且拦截/*,所以导致所有请求都被拦截,这块在spring boot里需要我们手动new 在加到shiro的ShiroFilterFactoryBean中,

但是不清楚为什么在传统spring mvc模式可以注入......

2.对接中的跨域问题,这里涉及到cookie的同源策略,需要关注域名,就是在1.a.com认证通过后打开3.a.com的页面在访问2.a.com的时候,2.a.com是直接认证通过的,4.a.com认证通过后把cookie写到domain=.a.com,这样二级域为a.com的都能传递,所以必须得是同域

3.3.a.com调用2.a.com的接口认证通过后没有跳转到前一个url而是跳转到successurl,这不是我们想要的,发现调用的接口采用的是post请求,shiro要求get请求才会redicet到前一个请求,如果是post的请求会跳转到successurl,目前还不清楚post的该怎么处理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值