如何只允许经过身份验证(登录)的用户访问 Spring restful 服务
How to only allow authenticated (logged in) users to access Spring restful service
web项目架构如下:
- 有一个 Spring MVC restful 网络服务 运行 服务 HTTP restful APIs。
- node.js 快速服务 是 运行 使用 AngularJS 服务网页。它还为 AngularJS 调用提供了一些 HTTP resful 服务,它基本上调用 Spring Restful API 和 returns 结果到前端 AngularJS.
调用流程为:
- 页面上的 AngularJS 发起 API 调用快递 restful 服务。
- 然后快速服务调用 Spring MVC restful 服务以获得所需的结果。
- 快递服务returns结果到前端AngularJS。在返回Angular之前,它可以post处理数据以适应前端的需要。
如何只允许前端登录的用户(也是调用登录restfulAPI)后续调用[=58=提供的其他服务] MVC restful 服务?
棘手的是前端(AngularJS + Express 服务于页面并代理对 Spring Restful 的服务调用)和后端(Spring Restful 服务)是分开的部分。所以我不确定 Spring 安全是否可以完成这项工作。或者我可以使用其他方式吗?您的想法将不胜感激。
一旦用户登录系统,您可以在Spring端的一些缓存(应用程序级变量)中添加他的会话ID。现在,在用户登录后将此会话 ID 发送回用户。客户端的用户应将此会话 ID 存储在他的网络存储(sessionstorage 或 localstorage)中。现在对于每个 rest 服务调用,将会话 ID 与数据一起传递给服务器。
Spring端在收到请求时首先检查sessionId,用缓存中存储的session id验证session id。
这样您可以确保只有登录用户才能访问其余服务。
web项目架构如下:
- 有一个 Spring MVC restful 网络服务 运行 服务 HTTP restful APIs。
- node.js 快速服务 是 运行 使用 AngularJS 服务网页。它还为 AngularJS 调用提供了一些 HTTP resful 服务,它基本上调用 Spring Restful API 和 returns 结果到前端 AngularJS.
调用流程为:
- 页面上的 AngularJS 发起 API 调用快递 restful 服务。
- 然后快速服务调用 Spring MVC restful 服务以获得所需的结果。
- 快递服务returns结果到前端AngularJS。在返回Angular之前,它可以post处理数据以适应前端的需要。
如何只允许前端登录的用户(也是调用登录restfulAPI)后续调用[=58=提供的其他服务] MVC restful 服务?
棘手的是前端(AngularJS + Express 服务于页面并代理对 Spring Restful 的服务调用)和后端(Spring Restful 服务)是分开的部分。所以我不确定 Spring 安全是否可以完成这项工作。或者我可以使用其他方式吗?您的想法将不胜感激。
一旦用户登录系统,您可以在Spring端的一些缓存(应用程序级变量)中添加他的会话ID。现在,在用户登录后将此会话 ID 发送回用户。客户端的用户应将此会话 ID 存储在他的网络存储(sessionstorage 或 localstorage)中。现在对于每个 rest 服务调用,将会话 ID 与数据一起传递给服务器。
Spring端在收到请求时首先检查sessionId,用缓存中存储的session id验证session id。
这样您可以确保只有登录用户才能访问其余服务。