上下文:我在JBoss AS7社区版本上运行我的应用程序。我正在使用jboss的Java API for JaxRS。(不确定它是否与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的restful服务使用EJB。
问题:
我想使用摘要身份验证。要启用此功能,我需要采取哪些步骤?
我是否需要添加web.xml,或者是否可以更改JaxRSActivator以启用安全性?如果我需要web.xml,我应该删除JaxRSActivator吗?我应该在web.xml中配置什么?
感谢你的帮助。
发布于 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。
https://stackoverflow.com/questions/10148690
复制相似问题