Java EE模式:授权和RESTful服务实现

时间:2012-06-09 14:02:20

标签: spring java-ee tomcat

我想使用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,但杰克逊似乎更容易返回JSON对象。

问题:

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

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

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

2 个答案:

答案 0 :(得分:2)

可能是我见过的最受大脑损坏的执行身份验证的方式。身份验证不是REST API的关注点,而是底层框架/服务器的基本,摘要,协商等。正如duffymo已经说过的,Spring Security是最自然的方式。

答案 1 :(得分:0)

杰克逊是JSON序列化;我不知道它与认证/授权有什么关系。

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

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

是的,身份验证/授权是跨领域的问题。最佳位置问题的答案取决于您需要应用和使用它的位置。 Tomcat过滤器需要HTTP。你会在控制器或服务层进行身份验证吗?或两者?基于角色的授权怎么样?这可能很棘手。