1

我有一个使用 RESTEasy 公开 RESTful API 的应用程序。在调用任何方法之前,用户需要使用 HTTP-Basic 进行身份验证。

但是,我想向 RESTful API 添加一个方法,任何用户都可以在不进行身份验证的情况下调用该方法。我怎么做?是否有一些 JAX-RS/RESTEasy 注释可以添加到方法声明中,以指示该方法的身份验证是可选的。

谢谢。

4

1 回答 1

2

在您的 web.xml 中排除不需要身份验证的 REST 路径

<security-constraint>
   <web-resource-collection>
     <web-resource-name>All Access</web-resource-name>
     <url-pattern>/unchecked/*</url-pattern>
     <http-method>DELETE</http-method>
     <http-method>PUT</http-method>
     <http-method>HEAD</http-method>
     <http-method>OPTIONS</http-method>
     <http-method>TRACE</http-method>
     <http-method>GET</http-method>
     <http-method>POST</http-method>
   </web-resource-collection>
   <user-data-constraint>
     <transport-guarantee>NONE</transport-guarantee>
   </user-data-constraint>
</security-constraint>

那么您不需要身份验证的 REST 资源应该类似于

@Path("/unchecked")
public class NoAuthResource{


}
于 2012-04-16T21:28:11.397 回答