如何将Spring Security与我现有的REST Web服务集成

时间:2014-07-24 09:52:35

标签: spring web-services rest authentication spring-security

我使用Spring& amp;创建了REST Web服务。休眠。现在我想在我的Web服务中集成Spring安全性。我如何集成,是否必须在URL中添加身份验证参数(用户名,密码),或者是否有任何替代方法来集成Spring Security而不更改URL。提前谢谢。

1 个答案:

答案 0 :(得分:0)

基于使用性质,交换信息的敏感性等,有许多方法可以保护REST服务。一般的设计假设是REST调用将完全无状态,从而避免使用像HTTP Session这样的状态保存存储。 / p>

选项1:基本HTTP身份验证

客户端可以使用HTTP基本身份验证为每个请求发送用户名和密码。如果应用程序是用户的Intranet应用程序,这可能很有用。您必须编写一个组件来检查每个凭据请求,并拒绝那些未经身份验证的请求。

显然,缺点是客户端必须针对每个请求进行身份验证。如果您还需要执行角色检查,那么它也将与每个请求相关联。


选项2:包含每个请求的凭据

您可以在每个请求中包含用户凭据,但这会打开系统以进行攻击,因为GET请求的凭据清晰可见。


选项3:基于令牌的身份验证

客户端将使用HTTP POST请求上的用户名和密码对自己进行身份验证,以响应它们将收到REST会话令牌(类似于HTTP会话ID)。然后,客户端将重新将该令牌作为HTTP请求头重放每个后续请求。服务器只需针对此令牌进行身份验证。

优点是用户只需要进行一次身份验证。如果需要执行角色检查,可以创建一个查找缓存,将令牌作为键,将角色作为值。


您可以在Github上使用选项3查看示例应用程序。

相关问题