保护JBoss中的REST API

时间:2013-06-30 19:02:44

标签: java web-services jboss resteasy restful-authentication

我正在 JBoss-As 7 下开发RESTeasy JSON API。

我有另一个单独的网络服务器。

我在服务器端使用 JAVA 进行开发,在客户端使用 Javacript JQuery AJAX

所以,我有2个不同 * war * s,假设可以按以下方式访问它们:

  • HTTPS .//本地主机:8443 /服务
  • HTTP .//本地主机:8080 /网络

现在我想保护这两个家伙; RESTeasy API 网络服务器

让我讲述我的结构:

  • 我使用用户名密码将用户保留在数据库中。这些是目前唯一的用户。
  • 我有一个登录页面来验证我的用户(我不想要http基本身份验证弹出窗口以及任何解决方法)
  • REST API 的客户端是浏览器(不是网络服务器)。静态页面是加载的,然后通过REST API加载一些其他动态内容,使用 JQuery ,AJAX等在浏览器中调用。
  • 所有通讯都可以通过 SSL / TLS 进行,没问题。
  • 对于未来,应考虑可扩展性(除了网络浏览器以外的客户端,使用社交网络登录进行身份验证的能力等)。

我的方案如下:

  • 客户端是浏览器。
  • 客户希望访问仅限经过身份验证的用户的网页web/aaa.html
  • 客户端被重定向到登录页面:web/login.html
  • 客户填写 FORM 并发送给...,

    a)到rest-api或

    b)到网络服务器,

    不确定(所以,这里有一个隐含的问题)。

    但无论如何,a或b应该做的是相同的:

    检查用户名密码。假设他们已经过检查并且用户已通过身份验证。

  • 从现在开始,我应该同时拥有这两件事:

    1 - 客户有权浏览受限制的网页。

    2 - 客户端将获得REST API调用的授权。

因此,在登录页面进行身份验证后,我需要同时发生这两件事。

我已经阅读了很多关于REST API授权的内容,包括令牌,密钥等等。是的,我也听说过 Spring Security Apache Shiro ,等

是的,我不想自己实现一个新的安全框架,我将使用一个。我想有些框架可以为我生成/检查令牌等。

在Spring Security和Apache Shiro之前,我想了解 resteasy骨架键JBoss模块

有这些来源:

https://github.com/resteasy/Resteasy/tree/3.0.1.Final/jaxrs/examples/oauth2-as7-example

http://docs.jboss.org/resteasy/docs/3.0-beta-2/userguide/html/oauth2.html

但是,他们在我看来并不是非常明确的,而且我也不确定他们是否是我所需要的。

是否有人知道如何配置骨架密钥(或者一般JBoss App层)并给我一些有用的示例来实现我所描述的内容,请?

或者,您能否给我一些其他建议/示例来实现我的目标,特别是注意到我的问题是关于“如何实施”?我不知道从哪里开始。

提前致谢。

1 个答案:

答案 0 :(得分:0)

为了保护REST服务,我们可以使用以下框架

  • OAuth(开源 - RFC6749
  • Apigee