3

上下文:我在 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 中配置什么?

感谢你的帮助。

4

1 回答 1

0

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。

于 2012-04-13T22:45:13.117 回答