2.15. 保护 JAX-RS Web 服务
RESTEasy 支持 JAX-RS 方法上的 @RolesAllowed
、@PermitAll和 @DenyAll
注释。但是,您必须启用基于角色的安全性,才能识别这些注释。
2.15.1. 启用基于角色的安全性
按照以下步骤配置 web.xml
文件,以启用基于角色的安全性。
警告
如果应用使用了 EJB,则不要激活基于角色的安全性。EJB 容器将提供功能,而非 RESTEasy。
为 RESTEasy JAX-RS Web 服务启用基于角色的安全性
-
在文本编辑器中打开应用的
web.xml
文件。 在
<
添加到该文件中。web-app> 标签内将以下 <context-param
><context-param> <param-name>resteasy.role.based.security</param-name> <param-value>true</param-value> </context-param>
使用
<security-role> 标签声明 RESTEasy JAX-
RS WAR 文件中使用的所有角色。<security-role> <role-name>ROLE_NAME</role-name> </security-role> <security-role> <role-name>ROLE_NAME</role-name> </security-role>
授权对所有角色的 JAX-RS 运行时处理的所有 URL 进行访问。
<security-constraint> <web-resource-collection> <web-resource-name>Resteasy</web-resource-name> <url-pattern>/PATH</url-pattern> </web-resource-collection> <auth-constraint> <role-name>ROLE_NAME</role-name> <role-name>ROLE_NAME</role-name> </auth-constraint> </security-constraint>
为此应用定义适当的登录配置。
<login-config> <auth-method>BASIC</auth-method> <realm-name>jaxrs</realm-name> </login-config>
基于角色的安全性已在应用内启用,包含一组定义的角色。
示例:基于角色的安全配置
<web-app> <context-param> <param-name>resteasy.role.based.security</param-name> <param-value>true</param-value> </context-param> <security-constraint> <web-resource-collection> <web-resource-name>Resteasy</web-resource-name> <url-pattern>/security</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> <role-name>user</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>jaxrs</realm-name> </login-config> <security-role> <role-name>admin</role-name> </security-role> <security-role> <role-name>user</role-name> </security-role> </web-app>