使用OAuth保护jax-rs

时间:2013-02-03 15:24:36

标签: java web-services oauth jax-rs

我有以下问题:

我有JAX-RS服务,其get操作:

@Path("/unsecure/")
@Produces("application/json")
public class MyUnsecureService {
    public MyUnsecureService() {

    }

    @GET
    @Path("/get/{id}")
    @Produces("application/json")
    public User get(@PathParam("id") String id) {
        return User.get(id);
    }
}

现在,我打算为移动设备打开这个API,我需要身份验证和授权机制来访问API。

我的问题是我有可信赖的应用程序(内部作业,在我的主机上运行的网站)应该能够根据需要公开此API,没有任何限制,移动设备应该能够公开这个API仅当它们具有使用真实用户的加密登录/通过形成的令牌时才可以在服务端使用以确定:

  1. 如果允许对该方法的请求。
  2. 如果参数正确(因此,用户无法获取其他用户的信息)。
  3. 这可以使用OAuth1或OAuth2吗?

2 个答案:

答案 0 :(得分:0)

这是一个非常有效的问题。

你可能想看一下Oz(backgroud),AFAIU会对你的用例有很大帮助。就个人而言,我有兴趣解决Java问题并跟踪Eran使用Java实现的工作(jironhawkj)。最后用Java做Oz(或something like it)。

现在很难发布,但如果你愿意,可以联系我们。

现在JAX-RS的具体问题似乎是SecurityContext

答案 1 :(得分:0)

答案是:

使用客户端凭据和资源所有者授权授权,这些授权在Apache CXF的OAuth2实现中实现。