O IBM® runtime environment
for Java™ API for RESTful Web
Services (JAX-RS) é direcionado por um servlet derivado do projeto Apache
Wink. Dentro do ambiente do WebSphere Application Server, o ciclo de vida de servlets é gerenciado no contêiner da Web. Portanto, os serviços de segurança oferecidos pelo contêiner da Web são aplicáveis aos recursos REST que são implementados no WebSphere Application Server.
Sobre Esta Tarefa
É possível definir e incluir restrições de segurança nos recursos REST
usando o mesmo conjunto de ferramentas que é usado para montar aplicativos REST.
Essas restrições são capturadas no descritor de implementação da Web J2EE que está associado com o seu aplicativo. A seguinte lista descreve as definições
de segurança que podem ser incluídas no descritor de implementação:
- Autenticação do usuário ao chamar os recursos REST integrados no aplicativo,
incluindo
- Autenticação Básica HTTP
- Autenticação de login de formulário.
- Controle de autorização sobre os recursos REST conforme definido pelos
padrões de URL para os recursos.
- Uso do SSL para transporte ao chamar recursos REST.
- Uso programático do objeto SecurityContext para determinar a identidade
e as funções do usuário.
Todos os mecanismos de segurança suportados pelo contêiner da Web são aplicáveis aos recursos REST, incluindo o uso do mecanismo de autenticação SPNEGO baseado em Kerberos.
Procedimento
- Configure o ambiente de desenvolvimento.
- Antes de iniciar o desenvolvimento de aplicativos
JAX-RS, é necessário configurar o ambiente de desenvolvimento ao incluir
as bibliotecas JAX-RS no caminho de classe.
- Definir os recursos nos aplicativos da Web JAX-RS.
- Os recursos são o bloco de construção básico de um serviço RESTful. Os recursos podem conter dados estáticos
ou atualizados dinamicamente.
Os exemplos de recursos a partir de um aplicativo de armazenamento de manual online incluem um manual, uma ordem de um armazenamento e uma coleta de usuários. Ao identificar os recursos no seu aplicativo, poderá tornar seu serviço mais
útil e fácil de desenvolver.
- Configure o aplicativo JAX-RS.
É possível configurar aplicativos JAX-RS de várias formas dependendo de suas necessidades.
Para aproveitar a funcionalidade Java Platform, Enterprise Edition (Java EE) 6, é possível usar os recursos de varredura de anotação.
Ao usar a varredura de anotação, é possível omitir uma subclasse JAX-RS javax.ws.rs.core.Application ou ter uma subclasse javax.ws.rs.core.Application minimamente definida. Como alternativa, é possível especificar o servlet ou filtro do IBM JAX-RS se quiser usar a funcionalidade disponível no servlet e filtro do IBM JAX-RS.
Usando um dos métodos de configuração do JAX-RS Versão 1.1, é possível omitir uma subclasse javax.ws.rs.core.Application
em seu aplicativo ou ter uma subclasse javax.ws.rs.core.Application que retorne um conjunto vazio de classes para informar o ambiente de tempo de execução do JAX-RS para localizar e usar todas as classes JAX-RS no aplicativo. É possível que você queira usar este método quando não quiser ter que incluir manualmente cada classe JAX-RS relevante em uma subclasse javax.ws.rs.core.Application conforme desenvolve o aplicativo.
Ao especificar o servlet e filtro IBM JAX-RS específicos, é possível aproveitar e garantir o comportamento do IBM JAX-RS específico. Por exemplo, usar o filtroIBM JAX-RS pode ser útil
no desenvolvimento de um aplicativo da Web com uma combinação de recursos JAX-RS e arquivos
JavaServer Pages (JSP) com os mesmos padrões de URL.
Apesar de haver um método de configuração do
JAX-RS V1.1 que suporta o uso de um arquivo
web.xml opcional, se desejar especificar restrições ou funções de segurança ou se desejar tirar proveito dos recursos ativados usando um arquivo
web.xml, você deve especificar as informações em um arquivo
web.xml.
Escolha um dos três métodos a seguir para configurar seu aplicativo JAX-RS:
- Configurar aplicativos JAX-RS usando métodos JAX-RS 1.1
Use este método se quiser usar os recursos de varredura de anotação ou usar os métodos de configuração do JAX-RS 1.1. É possível usar os recursos de varredura de anotação para promover a portabilidade do aplicativo, para minimizar a quantidade de código de configuração ou para modificar o aplicativo de forma dinâmica sem mudanças no código do aplicativo.
- Configurar
o arquivo web.xml para servlets JAX-RS
Use este método se quiser especificar os recursos que estão ativados usando os parâmetros de inicialização de servlet para alterar o comportamento e garantir que se obtém o servlet IBM JAX-RS. Ao usar servlets, é possível definir um caminho de servlet no arquivo web.xml
que é anexado à URL base.
- Configurar
o arquivo web.xml para filtros JAX-RS
Use este método se quiser usar o filtro quando tiver JSPs, outros servlets e filtros e recursos JAX-RS com uma combinação de padrões URL. É possível configurar o arquivo web.xml para definir filtros que indicam as possíveis URLs nas quais o filtro pode ser chamado.
- Proteja aplicativos JAX-RS dentro do contêiner da Web.
- Usando os serviços de segurança disponíveis para o contêiner da Web, é possível proteger recursos REST configurando mecanismos de segurança que definem autenticação de usuário, segurança de transporte, controle de autorização e mapeamentos de usuário para função.
- Proteja recursos JAX-RS usando anotações.
- É possível proteger recursos JAX-RS usando anotações que especificam configurações de segurança. É possível usar as anotações @PermitAll, @DenyAll e
@RolesAllowed para substituir a configuração de restrições de segurança definidas no arquivo
web.xml.
- (opcional) Proteja recursos de JAX-RS de recebimento de dados.
- É possível proteger recursos de JAX-RS de recebimento de dados configurando o método BasicAuth para autenticação ou usando o manipulador de segurança LTPA JAX-RS para tirar vantagem da conexão única para autenticação de usuário.
- (opcional) Proteja clientes JAX-RS usando SSL.
- É possível proteger as comunicações entre o seu aplicativo JAX-RS e clientes que chamam o aplicativo usando a segurança da camada de transporte Secure Sockets Layer (SSL).
- Montar aplicativos da Web JAX-RS.
- Após
desenvolver os arquivos de classe Java
para o seu aplicativo da Web JAX-RS e editar o arquivo web.xml para ativar
o servlet JAX-RS, você está pronto para montar o aplicativo.
Montar
o aplicativo da Web em um pacote archive aplicativo da Web (WAR). É possível montar o pacote
WAR em um pacote archive corporativo (EAR), se necessário.
- Implementar aplicativos da Web JAX-RS.
- Após ter
montado o seu aplicativo da Web JAX-RS, é necessário implementar o seu pacote
archive Web (WAR) ou o pacote archive corporativo (EAR) no
servidor de aplicativos.
- Administre o aplicativo JAX-RS seguro.
- Depois de implementar os mecanismos de segurança, como autenticação
HTTP ou restrições de autorização baseadas em função, nos recursos REST, é
possível usar o console administrativo para administrar os aplicativos JAX-RS
ao mapear as funções definidas para os usuários, grupos ou assuntos especiais.
Resultados
Você desenvolveu e implementou um aplicativo da Web JAX-RS no servidor de aplicativos. Também é possível usar o console administrativo para administrar
seu aplicativo JAX-RS seguro.