【问题标题】:How to secure Restful Service (SSB exposed as service) running on JBossAS7?如何保护在 JBossAS7 上运行的 Restful 服务(SSB 公开为服务)?
【发布时间】:2012-04-26 06:45:27
【问题描述】:

上下文: 我在 JBoss AS7 社区版本上运行我的应用程序。 我正在使用来自 jboss 的 JaxRS 的 Java API。 (不确定它是否与 RestEasy 相同?!)这是我的 maven 依赖项

      <dependency>
         <groupId>org.jboss.spec.javax.ws.rs</groupId>
         <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
         <scope>provided</scope>
      </dependency>

我正在使用 JaxRSActivator 在应用程序中启用 JAX-RS,如下所示。据我了解,这取代了在 web.xml 中进行 servlet 映射的需要

    @ApplicationPath("/rest")
public class JaxRsActivator extends Application {
   /* class body intentionally left blank */
}

我创建了一个 EJB (SSB) 并将其公开为一个 Restful 服务,如下所示"

@Path("/Items")
@Stateless
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class ItemMgmtServiceBean {

    @GET
    @Path("/{id:[0-9][0-9]*}")
    @Produces("text/xml")
    public Item findItem(@PathParam("id")long itemId)

上面的 REST 服务在 JBoss AS7 上完美运行。请注意,到目前为止,我不必使用 web.xml。

现在我想保护这项服务。我想在此服务中使用编程安全性来查找主体名称(根据我的业务逻辑)。

RestEasy 文档说我不应该打开 EJB 的上下文参数。

 <context-param>
      <param-name>resteasy.role.based.security</param-name>
      <param-value>true</param-value>
   </context-param>

但是它没有解释我应该在 web.xml 中使用什么,或者我是否需要将 web.xml 用于基于 EJB 的 restful 服务。

问题:

我想使用摘要式身份验证。我需要采取哪些步骤才能启用此功能? .

我需要添加 web.xml 还是可以更改 JaxRSActivator 以启用安全性? 如果我需要 web.xml,我应该删除 JaxRSActivator 吗? web.xml中应该配置什么?

感谢您的帮助。

【问题讨论】:

    标签: security jax-rs resteasy jboss7.x ws-security


    【解决方案1】:

    http://docs.jboss.org/resteasy/2.0.0.GA/userguide/html/Securing_JAX-RS_and_RESTeasy.html

    Resteasy JAX-RS 支持 JAX-RS 方法上的 @RolesAllowed、@PermitAll 和 @DenyAll 注释。但默认情况下,Resteasy 不识别这些注释。您必须通过设置上下文参数来配置 Resteasy 以打开基于角色的安全性。笔记!!!如果您使用 EJB,请不要打开此开关。 EJB 容器将提供此功能而不是 Resteasy。

    【讨论】:

    • 我在 RESTEasy 文档中阅读了此说明。尽管添加了@RolesAllowed,但它不起作用。您是否还看到有关在使用 EJB 时不要使用上下文参数的说明。没有详细的例子说明这是如何工作的。能否提供一些代码示例来提供帮助?
    猜你喜欢
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 2017-09-30
    • 2018-06-13
    • 2012-01-17
    • 1970-01-01
    相关资源
    最近更新 更多