如何在不维护 jsessionid 的情况下在 Spring 引导中保护 RESTful API
How to secure a RESTful API in Spring Boot without mantain a jsessionid
我需要创建一个 SpringBoot RESTful API 以供 Web 项目或移动应用程序使用。
我的问题是如何在没有通常的基本授权的情况下保护它,即 returns 您 "jsessionid" 到 Web 浏览器并保持与它的会话。对于 web 项目来说这不是问题,因为它可以存储那个 jsessionid。但是如何将移动应用程序请求保护到 API?
对不起我的英语。谢谢
您可以使用基本身份验证。它可以在每次请求时发送用户名和密码,但不需要在客户端中保存 sessionid。
这是一个带有基本身份验证的示例应用程序:
http://www.baeldung.com/spring-security-basic-authentication
如果您不在服务器会话中保存任何内容,则不需要在客户端中保存 jsessionid。
其中一个architectural constraints of REST是必须是无状态的
您的 REST API 不能有对客户端进行身份验证的会话。相反,客户端应该传递某种令牌,通常放在 Authentication
HTTP Header.
JWT and OAuth 2.0 都是非常流行的方法,如果您愿意,您绝对可以将 HTTP 基本身份验证与 OAuth 2.0 结合使用。
这是一篇名为 Stateless Authenticaiton with Spring Security and JWT 的文章。希望这会有所帮助!
我需要创建一个 SpringBoot RESTful API 以供 Web 项目或移动应用程序使用。
我的问题是如何在没有通常的基本授权的情况下保护它,即 returns 您 "jsessionid" 到 Web 浏览器并保持与它的会话。对于 web 项目来说这不是问题,因为它可以存储那个 jsessionid。但是如何将移动应用程序请求保护到 API?
对不起我的英语。谢谢
您可以使用基本身份验证。它可以在每次请求时发送用户名和密码,但不需要在客户端中保存 sessionid。
这是一个带有基本身份验证的示例应用程序: http://www.baeldung.com/spring-security-basic-authentication
如果您不在服务器会话中保存任何内容,则不需要在客户端中保存 jsessionid。
其中一个architectural constraints of REST是必须是无状态的
您的 REST API 不能有对客户端进行身份验证的会话。相反,客户端应该传递某种令牌,通常放在 Authentication
HTTP Header.
JWT and OAuth 2.0 都是非常流行的方法,如果您愿意,您绝对可以将 HTTP 基本身份验证与 OAuth 2.0 结合使用。
这是一篇名为 Stateless Authenticaiton with Spring Security and JWT 的文章。希望这会有所帮助!