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

如何为Angular.js或Ember.js保护Spring RESTful Web服务

发布时间:2020-12-17 09:52:55 所属栏目:安全 来源:网络整理
导读:我有一个 Spring MVC应用程序,它使用Spring Security来处理用户登录身份验证,工作正常. 现在我想将一些Ember.js和Angular.js代码添加到访问Spring RESTful Web服务(只返回JSON数据)的HTML页面中. 如何将用户登录身份验证绑定到RESTful Web服务的身份验证?换
我有一个 Spring MVC应用程序,它使用Spring Security来处理用户登录身份验证,工作正常.

现在我想将一些Ember.js和Angular.js代码添加到访问Spring RESTful Web服务(只返回JSON数据)的HTML页面中.

如何将用户登录身份验证绑定到RESTful Web服务的身份验证?换句话说,我想这样做只有在用户登录后才能访问RESTful Web服务.这样,Angular.js和Ember.js库就可以从我的用户页面安全地访问这些RESTful Web服务没有其他人能够直接打电话给他们.

我在另一篇文章中读到,Spring Security从未打算用于完整的Ajax框架,这是真的吗?我希望事实并非如此.我想现在这种类型的东西必须非常普遍,因为有很多AJAX客户端框架基于访问JSON / RESTful API而工作.

当然,Spring Security从未打算成为或不能用于AJAX应用程序.我在生产中有两个应用程序,它们使用Spring Security以及AJAX和更多正在开发的应用程序.

如果要在Spring Security工作的现有Web应用程序中使用EmberJS或AngularJS,如果只是将JavaScript库添加到项目中,则不应该遇到太多问题.这是因为一旦您的用户通过身份验证,任何正常的HTTP请求都将被视为已通过身份验证,因为浏览器将确保使用Cookie或URL参数来回传递会话信息(如果适用).您可以看到我的working examples on Github之一用于Spring Security和EmberJS集成.

您可能需要担心的唯一问题是使用AJAX进行表单提交的CSRF令牌.最新的Spring Security文档有一小部分专门用于此,因此您不应该面临太多问题.但是,我想澄清一下,这个特定问题并非特定于Spring Security. CSRF保护通常涉及在每个HTTP POST请求中包含安全的,随机生成的令牌.挑战源于使现有的JavaScript库了解此令牌以及如何将其包含在HTTP POST请求中.这在任何应用程序中都是一个挑战,而不仅仅是使用Spring Security的应用程序.

但是,如果您将使用无状态客户端(例如移动设备),则无法依赖在HTTP会话中存储用户凭据的默认Spring Security机制,因为HTTP请求将不具有将它们绑定到会话的信息.这也不是特定于Spring或Spring Security应用程序,因为约束是由客户端的性质和客户端 – 服务器通信而不是任何服务器端技术强加的.在这种情况下,您需要在应用程序的HTTP标头中传递一些身份验证令牌,以维护服务器端的安全状态.我有一个working example for this as well.如果您需要更多详细信息,网上有一些文章解释了如何使用Spring Security执行此类操作.

(编辑:李大同)

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

    推荐文章
      热点阅读