加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 在AJAX请求上处理SAML重定向

发布时间:2020-12-17 10:22:22 所属栏目:安全 来源:网络整理
导读:我有几个AngularJS应用程序都使用 Spring / Java和SAML 2.0 for SSO(利用Spring Security SAML扩展).我的SSO ID提供程序是OpenAM,一切都运行良好.但是,当用户在一个应用程序中执行全局注销但打开其他选项卡时,我遇到了这种情况.由于这些是单页面Web应用程序,
我有几个AngularJS应用程序都使用 Spring / Java和SAML 2.0 for SSO(利用Spring Security SAML扩展).我的SSO ID提供程序是OpenAM,一切都运行良好.但是,当用户在一个应用程序中执行全局注销但打开其他选项卡时,我遇到了这种情况.由于这些是单页面Web应用程序,因此在孤立选项卡UNTIL中仍可使用许多功能,用户可以执行某些操作来调用ajax请求.当然,这些AJAX请求会被Spring Security SAML过滤器拦截,并通过REDIRECT触发对OpenAM登录URL的身份验证尝试.当然,这会在浏览器中造成严重破坏,因为AJAX请求不允许重定向到另一个域.此外,我无法对Angular的$http拦截器做任何事情,因为请求被“取消”并且$http错误回调函数中没有可用的质量信息(例如方便的401/403状态代码).我所知道的是请求失败了.

我不想假设所有错误的$http请求都是由于身份验证问题(并且执行$window.location.reload()),因为可能存在合理的失败原因.我倾向于禁止针对ajax请求的Spring Security重定向(到OpenAM登录页面),而是发送回401/403状态代码.这将允许我处理$http拦截器中的错误并在身份验证失败时执行整页加载,从而优雅地重定向到登录页面,就好像他们第一次访问该站点一样.

有关如何实现这一目标的任何想法?

负责初始化身份验证和决定返回HTTP错误,执行重定向,…的bean是AuthenticationEntryPoint的一个实例.要改变其行为,您可以:

>自定义当前SAMLEntryPoint(扩展开始方法)并覆盖默认行为,以防请求是来自Angular的AJAX调用,因此它返回HTTP错误而不是执行重定向到IDP>或定义另一个安全性:Spring上下文中的http元素(在当前的上下文中)仅覆盖您的AJAX请求(例如,使用attribute pattern =“/ api / **”)并使用一个符合您想要的行为的入口点(见Http403ForbiddenEntryPoint)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读