设计在Spring 3中实现Restful应用程序的相关查询

时间:2012-02-13 12:41:08

标签: spring-3 restful-architecture

我已经在Spring MVC 3.0中实现了一个应用程序。现在我想将这个应用程序转换为一个宁静的应用程序,使得业务逻辑保留在一个应用程序中,而Web层保留在另一个应用程序中。

现在使用Rest实现这一点我的Web层将充当休息客户端,它将访问业务逻辑实现相关应用程序公开的服务

我感到困惑的一点是我应该如何为此实现登录。

我是否应该在休息后请求中将登录凭据从Web应用程序发送到服务应用程序,然后维护将充当jsessionid的id,以授权我的进一步请求

或者我应该对每个请求进行身份验证和授权

或者Spring是否已经提出任何设计模式来实现这种要求。

任何知道此事的人都可以帮助我。

1 个答案:

答案 0 :(得分:0)

您应该在REST网络层和“普通”/客户端网络层上进行身份验证。考虑这一点的最简单方法是忽略这样一个事实:在当前情况下,您将编写REST API的客户端和服务端。相反,请考虑客户端连接来自外部源。

这应该清楚地表明REST服务需要验证所有请求。通常,您将使用HTTP Basic Auth单独验证每个请求;如果数据敏感或凭证因某些其他原因需要保护,则可以使用SSL。从中获取这些凭据可能是特定于应用程序的。

拥有某种API密钥是一种常见的模式,客户端将使用密钥对自身进行身份验证,但API不会单独了解客户端的用户。您还可以实现一种传递身份验证,其中客户端用户的凭据随每个请求一起发送到API,只要您的API知道有关这些用户的信息即可。在这种情况下,您的用户可以使用客户端(您已经实现的Web应用程序)或直接使用API​​。