12.4. Serviços do Aplicativo JAX-RS
12.4.1. Habilitação de Segurança baseada na Função para um Serviço da Web RESTEasy JAX-RS Copiar o linkLink copiado para a área de transferência!
O RestEasy suporta as anotações @RolesAllowed, @PermitAll e @DenyAll nos métodos JAX-RS. No entanto, ele não reconhece essas anotações por default. Siga essas etapas para configurar o arquivo web.xml e habilitar a segurança baseada na função.
Atenção
Procedimento 12.1. Habilitação de Segurança baseada na Função para um Serviço da Web RESTEasy JAX-RS
- Abra o arquivo
web.xmlpara o aplicativo num editor de texto. - Adicione o seguinte <context-param> ao arquivo com as tags
web-app:<context-param> <param-name>resteasy.role.based.security</param-name> <param-value>true</param-value> </context-param> - Declare todas as funções usadas com o arquivo RESTEasy JAX-RS WAR usando as tags <security-role>:
<security-role><role-name>ROLE_NAME</role-name></security-role><security-role><role-name>ROLE_NAME</role-name></security-role> - Autorize o acesso a todos os URLs manuseados pelo período de execução JAX-RS para todas as funções:
<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>
A segurança baseada na função foi habilitada com o aplicativo, com um conjunto de funções definidas.
Exemplo 12.12. Amostra de Configuração de Segurança baseada na Função
<web-app>
<context-param>
<param-name>resteasy.role.based.security</param-name>
<param-value>true</param-value>
</context-param>
<servlet-mapping>
<servlet-name>Resteasy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<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>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>user</role-name>
</security-role>
</web-app>