gpt4 book ai didi

security - 如何保护在 JBossAS7 上运行的 Restful Service(SSB 作为服务公开)?

转载 作者:行者123 更新时间:2023-12-02 06:29:00 44 4
gpt4 key购买 nike

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

感谢您的帮助。

最佳答案

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。

关于security - 如何保护在 JBossAS7 上运行的 Restful Service(SSB 作为服务公开)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148690/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com