首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何保护运行在JBossAS7上的Restful服务(单点登录)?

如何保护运行在JBossAS7上的Restful服务(单点登录)?
EN

Stack Overflow用户
提问于 2012-04-14 05:41:43
回答 1查看 2.1K关注 0票数 3

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

代码语言:javascript
复制
      <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映射的需要

代码语言:javascript
复制
    @ApplicationPath("/rest")
public class JaxRsActivator extends Application {
   /* class body intentionally left blank */
}

我已经创建了一个EJB (SSB),并将其作为Restful风格的服务公开,如下所示。“

代码语言:javascript
复制
@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的上下文参数。

代码语言:javascript
复制
 <context-param>
      <param-name>resteasy.role.based.security</param-name>
      <param-value>true</param-value>
   </context-param>

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

问题:

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

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

感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2012-04-14 06:45:13

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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10148690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档