我有一个使用 RESTEasy 公开 RESTful API 的应用程序。在调用任何方法之前,用户需要使用 HTTP-Basic 进行身份验证。
但是,我想向 RESTful API 添加一个方法,任何用户都可以在不进行身份验证的情况下调用该方法。我怎么做?是否有一些 JAX-RS/RESTEasy 注释可以添加到方法声明中,以指示该方法的身份验证是可选的。
谢谢。
在您的 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{
}