0

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

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

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

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

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

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

任何有这方面知识的人都可以帮助我。

4

1 回答 1

0

您应该在 REST Web 层和“正常”/客户端 Web 层上都有身份验证。考虑这一点的最简单方法是忽略这样一个事实,即在您当前的情况下,您将同时编写 REST API 的客户端和服务端。相反,请考虑客户端连接来自外部源。

这应该清楚地表明 REST 服务需要对所有请求进行身份验证。通常,您将使用 HTTP Basic Auth 分别对每个请求进行身份验证;如果数据是敏感的或出于其他原因需要保护凭据,您可以使用 SSL。从哪里获得这些凭据可能是特定于应用程序的。

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

于 2012-02-14T21:38:55.977 回答