0

我想使用 Tomcat 实现一个基本的 RESTful 服务。API 需要授权才能使用。授权将通过请求帐户“资源”来实现,例如

some.domain.com/rest/accounts?user=ABC&password=XYZ

如果凭据有效,则会将适当的帐户资源作为 JSON 重新调整,否则将返回 403 类型的空响应。授权完成后,客户端可以访问API(例如):

some.domain.com/rest/secure/bookings
some.domain.com/rest/secure/friends

但是,我对所有实施选项感到迷茫。我知道我想使用 Spring,但 Jackson 似乎更简单、更容易返回 JSON 对象。

问题:

  1. 即使使用 Jackson 的类也是一种控制器,我是否应该实现 Spring Controller?或者,如果我使用 Jackson,是否不需要 Sping 控制器?

  2. 是否应该使用 Spring-Security、Tomcat 过滤器或带有 Spring 的 AOP 来执行身份验证?

似乎有很多方法可以做事,但我的首要任务是保持简单。

4

2 回答 2

2

Probably the most brain-damaged way to perform authentication I have ever seen. Authentication is not the concern of the REST API but of the underlying framework/server with Basic, Digest, Negotiate, etc. As duffymo already said, Spring Security is the most natural way to do so.

于 2012-06-09T14:39:04.380 回答
0

Jackson是JSON序列化;我看不出它与身份验证/授权有什么关系。

如果您已经在使用 Spring,那么 Spring Security 是很自然的。

还有另一种观点:保持简单。基本身份验证和带有用户名和加密、加盐密码的数据库并不难编写。一个 DAO,你就很好。

是的,身份验证/授权是横切关注点。最佳放置位置问题的答案取决于您需要在哪里应用和使用它。Tomcat 过滤器需要 HTTP。你会在控制器或服务层进行身份验证吗?或两者?基于角色的授权呢?这可能很棘手。

于 2012-06-09T14:06:00.850 回答