在现有服务上实现oauth2身份验证

时间:2013-12-24 13:53:13

标签: java rest playframework-2.0 oauth-2.0

我有三种方法的休息服务,所以不那么复杂。我使用了play框架并实现了一些基本的身份验证(Global):

@Override
    public Action onRequest(Request request, Method actionMethod) {     
        if ("/dataDumps".equals(request.path()) || "/limitations".equals(request.path()) || "/entities".equals(request.path())) {
            if(null != request.getHeader("api-key") && request.getHeader("api-key").equals("xxxxxxx")) {
                return super.onRequest(request, actionMethod);
            } else {
                return new Action.Simple() {
                    @Override
                    public Promise<SimpleResult> call(play.mvc.Http.Context ctx) throws Throwable {
                        return F.Promise.pure((SimpleResult) forbidden());
                    }
                };
            }
        }

        return super.onRequest(request, actionMethod);
    }

哪个效果很好。现在我要求我需要添加oauth2身份验证。之前没有这样做,所以我肯定会读到一些链接:

http://aaronparecki.com/articles/2012/07/29/1/oauth2-simplified
http://oauth.net/code/
http://coolthingoftheday.blogspot.com/2012/03/o-what-is-oauth-big-picture-free-ebook.html

我试图在线查找oauth服务提供商示例实现的示例。我发现了这个:

http://oauth.googlecode.com/svn/code/java/example

但它甚至不能用maven构建。

所以我试着看看它是如何在这个例子中完成的,并将逻辑添加到我的onRequest方法,但在示例代码请求对象是HttpServletRequest但我的请求对象是play.mvc.Http.Request

我找到了这个问题https://gist.github.com/feliperazeek/1033587可以解决上面这个问题,但我觉得在开始之前我已经过度复杂了。

1。花了相当多的时间阅读并尝试了一些东西。也许实施Oauth服务提供商的人可以给我一些提示,有用的见解,链接或代码?

我的服务将被其他客户使用,可能是其他服务或设备,所以我认为我需要创建授权服务,以便客户端可以进行身份​​验证,但同时他们将使用我的服务。

2。我弄错了吗?有没有比上面描述的更好的方法(很可能)?

0 个答案:

没有答案