如何在Spring Boot中保护RESTful API而不保留jsessionid

时间:2016-06-07 13:43:15

标签: spring api rest spring-boot restful-authentication

我需要创建一个SpringBoot RESTful API,供Web项目或移动应用程序使用。

我的问题是如何在没有通常的基本授权的情况下保护它,它将“jsessionid”返回给Web浏览器并保存与它的会话。对于Web项目来说这不是问题,因为它可以存储jsessionid。但是如何保护移动应用程序请求到API?

抱歉我的英文。感谢。

2 个答案:

答案 0 :(得分:5)

您可以使用基本身份验证。它可以在每个请求上发送用户名和密码,但不需要在客户端中保存sessionid。

以下是具有基本身份验证的示例应用程序: http://www.baeldung.com/spring-security-basic-authentication

如果您未在服务器会话中保存任何内容,则无需在客户端中保存jsessionid。

答案 1 :(得分:5)

其中一个architectural constraints of REST是它必须是无国籍的。

您的REST API不得具有对客户端进行身份验证的会话。相反,客户端应该传递某种令牌,通常放在Authentication HTTP标头中。

JWTOAuth 2.0都是非常流行的方式,如果您愿意,您绝对可以使用OA基本身份验证和OAuth 2.0。

这是一篇名为Stateless Authenticaiton with Spring Security and JWT的文章。希望这会有所帮助!