| // |
| // Licensed to the Apache Software Foundation (ASF) under one |
| // or more contributor license agreements. See the NOTICE file |
| // distributed with this work for additional information |
| // regarding copyright ownership. The ASF licenses this file |
| // to you under the Apache License, Version 2.0 (the |
| // "License"); you may not use this file except in compliance |
| // with the License. You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, |
| // software distributed under the License is distributed on an |
| // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| // KIND, either express or implied. See the License for the |
| // specific language governing permissions and limitations |
| // under the License. |
| // |
| |
| = Protegendo uma aplicação Web no NetBeans IDE |
| :jbake-type: tutorial |
| :jbake-tags: tutorials |
| :jbake-status: published |
| :icons: font |
| :syntax: true |
| :source-highlighter: pygments |
| :toc: left |
| :toc-title: |
| :description: Protegendo uma aplicação Web no NetBeans IDE - Apache NetBeans |
| :keywords: Apache NetBeans, Tutorials, Protegendo uma aplicação Web no NetBeans IDE |
| |
| Contribuição de Dan Kolar, Manutenção de James Branam e Jeff Rubinoff |
| |
| Este documento lhe orienta a respeito dos conceitos básicos da adição de segurança a uma aplicação Web implantada em um servidor Oracle GlassFish Open Source Edition, Oracle WebLogic ou Apache Tomcat. |
| |
| Este documento mostra como configurar a autenticação de segurança usando uma janela de log-in básico e usando também um form de log-in em uma página Web. Este documento guia você pelas etapas de criação de usuários no servidor Tomcat e no GlassFish Server. Depois de criar os usuários, você cria as atribuições de segurança, definindo as propriedades de segurança no descritor de implantação. Este documento também mostra como usar a autenticação JDBC para proteger sua aplicação durante a implantação do GlassFish Server. |
| |
| *Duração esperada: _40 _minutos* |
| |
| |
| image::images/netbeans-stamp-80-74-73.png[title="O conteúdo desta página se aplica ao NetBeans IDE 7.2, 7.3, 7.4 e 8.0"] |
| |
| |
| *Para seguir este tutorial, são necessários os recursos e o software a seguir.* |
| |
| |=== |
| |Software ou Recurso |Versão Necessária |
| |
| |link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Versão Java EE |
| |
| |link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+JDK (Java Developer Kit)+] |Versão 7 ou 8 |
| |
| |Plataforma Java EE |Java EE 6 ou 7 |
| |
| |Travel Database |Não é Obrigatório |
| |
| |Servidor de aplicações ou Web compatível com Java EE |Servidor Web Tomcat 7.x ou 8.x, Oracle WebLogic 11g ou |
| GlassFish Server Open Source Edition 4.x |
| |=== |
| |
| |
| == Instalando e Configurando o Ambiente de Trabalho |
| |
| Instale e inicie o NetBeans IDE. Você pode seguir este tutorial usando o servidor Tomcat fornecido ou o GlassFish Server. |
| |
| Verifique se o servidor está instalado e se há uma instância do servidor registrada no IDE. Você pode usar o Gerenciador de Servidores para registrar uma instância do servidor instalado. (Selecione Ferramentas > Servidores > Adicionar Servidor. Selecione “GlassFish Server <número da versão>” ou “Tomcat <número da versão>” e clique em Próximo. Clique em Procurar e localize o diretório de instalação do servidor de aplicações. Clique em Finalizar.) |
| |
| |
| == Criando a Aplicação Web |
| |
| Neste exercício, você primeiro cria o projeto de aplicação Web e a estrutura do diretório. Em seguida, você cria alguns arquivos ``html`` simples em cada um dos diretórios seguros. A aplicação Web utiliza uma autenticação de log-in básico para acessar os diretórios seguros. Se quiser usar um form de log-in para autenticação, você pode adicionar uma página ``jsp`` com o form. |
| |
| |
| === Criando os Diretórios Seguros |
| |
| 1. Selecione Arquivo > Novo Projeto (Ctrl-Shift-N), selecione Aplicação Web na categoria Java Web e clique em Próximo. |
| 2. Chame o projeto de ``WebApplicationSecurity`` . Aceite as definições default. |
| 3. (Opcional) Marque a caixa de seleção Utilizar Pasta Dedicada para Armazenamento de Bibliotecas e especifique o local da pasta de bibliotecas. Consulte link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG455[+Compartilhando uma Biblioteca com Outros Usuários+] em _Desenvolvendo Aplicações com o NetBeans IDE_ para obter mais informações sobre essa opção. |
| 4. Clique em Próximo. |
| 5. Selecione o servidor no qual deseja implantar a aplicação. Somente os servidores registrados com o IDE serão listados. Clique em Próximo. |
| 6. Não é necessário adicionar um framework; portanto, clique em Finalizar. |
| 7. Se você criou uma aplicação EE 6, vá à janela Projetos do IDE, clique com o botão direito do mouse no nó do projeto e selecione Novo > Outro > Web > Descritor de Implantação Padrão (web.xml). Aceite todos os defaults e percorra o assistente. |
| |
| *Observação:* este tutorial mostra como configurar a segurança no descritor de implantação, mas as aplicações EE 6 e EE 7 usam anotações em vez de um descritor de implantação, por padrão. |
| |
| 8. Se estiver usando um GlassFish ou WebLogic Server e o NetBeans IDE 7.0.1 ou posterior, você precisará gerar um descritor específico para o servidor. Clique com o botão direito do mouse no nó do projeto e selecione Novo > Outro > GlassFish > Descritor do GlassFish ou Novo > Outro > WebLogic > Descritor do WebLogic. A caixa de diálogo Criar Descritor Específico do Servidor será aberta. Aceite todos os defaults e clique em Finalizar. O descritor específico do servidor, chamado ``glassfish-web.xml`` ou ``weblogic.xml`` , aparecerá no projeto na pasta Arquivos de Configuração. |
| 9. Na janela Projetos do IDE, clique com o botão direito do mouse em Páginas Web e selecione Novo > Outro. |
| 10. No assistente de Novo Arquivo, selecione Outro como Categoria e Pasta como o Tipo de Arquivo. Clique em Próximo. |
| 11. |
| No assistente de Nova Pasta, chame a pasta de secureAdmin e clique em Finalizar. |
| |
| A pasta secureAdmin será exibida na janela Projetos da pasta Páginas Web. |
| 12. Repita as três últimas etapas para criar outra pasta chamada secureUser. |
| 13. Crie um novo arquivo ``html`` na pasta secureUser, clicando com o botão direito do mouse na janela Projetos e selecionando Novo > Outros. |
| 14. Selecione o tipo de arquivo HTML na categoria Outro. Clique em Próximo. |
| 15. Chame o novo arquivo de pageU e clique em Finalizar. |
| |
| Quando você clica em Finalizar, o arquivo ``pageU.html`` é aberto no Editor de Código-Fonte. |
| |
| 16. No Editor de Código-Fonte, substitua o código existente em ``pageU.html`` pelo código a seguir:[html-tag]#<html> |
| <head> |
| <title># |
| |
| [source,xml] |
| ---- |
| |
| User secure area[html-tag]#</title> |
| </head> |
| <body> |
| <h1>#User Secure Area[html-tag]#</h1> |
| </body> |
| </html># |
| ---- |
| 17. Clique com o botão direito do mouse na pasta secureAdmin e crie um novo arquivo ``html`` chamado pageA. |
| 18. No Editor de Código-Fonte, substitua o código existente em ``pageA.html`` pelo código a seguir:[html-tag]#<html> |
| <head> |
| <title># |
| |
| [source,xml] |
| ---- |
| |
| Admin secure area[html-tag]#</title> |
| </head> |
| <body> |
| <h1>#Admin secure area[html-tag]#</h1> |
| </body> |
| </html># |
| ---- |
| |
| |
| === Criando a Página de Índice JSP |
| |
| Agora você criará a página de índice JSP contendo links para as áreas seguras. Quando o usuário clicar no link, será solicitado que ele forneça o nome de usuário e a senha. Se você estiver utilizando um log-in básico, esses dados serão solicitados na janela de log-in do browser default. Se você estiver utilizando uma página de form de log-in, o usuário informará o nome de usuário e a senha em um form. |
| |
| 1. Abra ``index.jsp`` no Editor de Código-Fonte e adicione os seguintes links a ``pageA.html`` e ``pageU.html`` :[jsp-html-tag]#<p># |
| |
| [source,html] |
| ---- |
| |
| Request a secure Admin page [jsp-html-tag]#<a# [jsp-html-argument]#href=#[jsp-xml-value]#"secureAdmin/pageA.html"#[jsp-html-tag]#>#here![jsp-html-tag]#</a></p> |
| <p>#Request a secure User page [jsp-html-tag]#<a# [jsp-html-argument]#href=#[jsp-xml-value]#"secureUser/pageU.html"# [jsp-html-tag]#>#here![jsp-html-tag]#</a></p># |
| ---- |
| 2. Salve as alterações. |
| |
| |
| === Criando um Form de Log-in (obrigatório para Tomcat e opcional para GlassFish ou WebLogic Server) |
| |
| Se você quiser usar um form de log-in em vez do log-in básico, crie uma página ``jsp`` contendo o form. Em seguida, especifique o log-in e as páginas de erro ao <<Basic_login_config,configurar o método de log-in>>. |
| |
| *Importante:* Os usuários do Tomcat devem criar um form de log-in. |
| |
| 1. Na janela Projetos, clique com o botão direito do mouse na pasta Páginas Web e selecione Novo > JSP. |
| 2. Defina o nome do arquivo como ``login`` , deixe os outros campos com seu valor default e clique em Finalizar. |
| 3. No Editor de Código-Fonte, insira o código a seguir entre as tags ``<body>`` de ``login.jsp`` . |
| |
| [source,xml] |
| ---- |
| |
| <[jsp-html-tag]#form# [jsp-html-argument]#action=#[jsp-xml-value]#"j_security_check"# [jsp-html-argument]#method=#[jsp-xml-value]#"POST"#[jsp-html-tag]#># |
| Username:[jsp-html-tag]#<input# [jsp-html-argument]#type=#[jsp-xml-value]#"text"# [jsp-html-argument]#name=#[jsp-xml-value]#"j_username"#[jsp-html-tag]#><br># |
| Password:[jsp-html-tag]#<input# [jsp-html-argument]#type=#[jsp-xml-value]#"password"# [jsp-html-argument]#name=#[jsp-xml-value]#"j_password"#[jsp-html-tag]#> |
| <input# [jsp-html-argument]#type=#[jsp-xml-value]#"submit"# [jsp-html-argument]#value=#[jsp-xml-value]#"Login"#[jsp-html-tag]#> |
| </form># |
| ---- |
| 4. Crie um novo arquivo ``html`` chamado ``loginError.html`` na pasta Páginas Web. Trata-se de uma página de erro simples. |
| 5. No Editor de Código-Fonte, substitua o código existente em ``loginError.html`` pelo código a seguir:[html-tag]#<html> |
| <head> |
| <title># |
| |
| [source,xml] |
| ---- |
| |
| Login Test: Error logging in[html-tag]#</title> |
| </head> |
| <body> |
| <h1>#Error Logging In[html-tag]#</h1> |
| <br/> |
| </body> |
| </html># |
| ---- |
| |
| |
| == Criando Usuários no Servidor de Destino |
| |
| Para poder usar a segurança da autenticação de usuário/senha (log-in básico ou log-in com base em form) em aplicações Web, os usuários e suas atribuições apropriadas devem ser definidos no servidor de destino. Para fazer log-in em um servidor, a conta do usuário precisa existir nesse servidor. |
| |
| A forma como você define os usuários e as atribuições varia de acordo com o servidor de destino especificado. Neste tutorial, os usuários ``admin`` e ``user`` são usados para testar a configuração da segurança. Você precisa confirmar que esses usuários existem nos respectivos servidores, e que as atribuições apropriadas estejam designadas aos usuários. |
| |
| |
| === Definindo Usuários no GlassFish Server |
| |
| Para este cenário, você precisará usar a Console de Administração do GlassFish Server para criar dois novos usuários chamados ``user`` e ``admin`` . O usuário chamado ``user`` terá acesso limitado à aplicação, enquanto que o ``admin`` terá privilégios de administração. |
| |
| 1. Abra a Console de Administração na janela Serviços do IDE e clique com o botão da direita do mouse em Servidores > GlassFish Server > Exibir Console de Administração do Domínio. A página de log-in do GlassFish Server será aberta na janela do browser. Você deverá fazer log-in usando o nome de usuário e a senha de administrador para acessar a Console de Administração. |
| |
| *Observação: *O Servidor de Aplicações deve estar em execução antes de você acessar a Console de Administração. Para iniciar o servidor, clique com o botão direito do mouse no nó do GlassFish Server e selecione Iniciar. |
| |
| 2. Na Console de Administração, vá até Configurações > server-config > Segurança > Realms > Arquivo. O painel Editar Realm será aberto. |
| image::images/edit-realm.png[] |
| 3. Clique no botão Gerenciar Usuários na parte superior do painel Editar Realm. O painel Usuários do Arquivo será aberto. |
| image::images/file-users.png[] |
| 4. Clique em Novo. O painel Novo Usuário do Realm do Arquivo será aberto. Digite ``user`` como o ID de usuário e ``userpw01`` como a senha. Clique em OK. |
| 5. Siga as etapas anteriores para criar um usuário chamado ``admin`` com a senha ``adminpw1`` no realm ``file`` . |
| |
| |
| === Definindo Atribuições e Usuários no Servidor Web Tomcat |
| |
| Para Tomcat 7, crie um usuário com a atribuição de script de gerência e uma senha para esse usuário ao registrar o servidor no NetBeans IDE. |
| |
| Os usuários e as atribuições básicas para o servidor Tomcat estão em ``tomcat-users.xml`` . Você encontra ``tomcat-users.xml`` no diretório ``_<CATALINA_BASE>_\conf`` . |
| |
| *Observação:* Você encontra a localização CATALINA_BASE clicando com o botão direito do mouse no nó do servidor Tomcat na janela Serviços e selecionando Propriedades. As Propriedades do Servidor serão abertas. A localização de CATALINA_BASE encontra-se na guia Conexão. |
| |
| image::images/tomcat-properties.png[] image::images/catalina-base.png[] |
| |
| *Observação:* Se você usar o Tomcat 6 fornecido com versões mais antigas do IDE, este servidor terá o usuário ``ide`` definido com uma senha e as atribuições de administrador e gerenciador. A senha do usuário ``ide`` é gerada quando o Tomcat 6 é instalado. Você pode alterar a senha do usuário ``ide`` ou copiar a senha em ``tomcat-users.xml`` . |
| |
| *Para adicionar usuários ao Tomcat:* |
| |
| 1. Abra ``_<CATALINA_BASE>_/conf/tomcat-users.xml`` em um editor. |
| 2. Adicione uma atribuição chamada ``AdminRole`` . |
| |
| [source,java] |
| ---- |
| |
| <role rolename="AdminRole"/> |
| ---- |
| 3. Adicione uma atribuição chamada ``UserRole`` . |
| |
| [source,java] |
| ---- |
| |
| <role rolename="UserRole"/> |
| ---- |
| 4. Adicione um usuário chamado ``admin`` com a senha ``adminpw1`` e a atribuição ``AdminRole`` . |
| |
| [source,java] |
| ---- |
| |
| <user username="admin" password="adminpw1" roles="AdminRole"/> |
| ---- |
| 5. Adicione um usuário chamado ``user`` com a senha ``userpw01`` e a atribuição ``UserRole`` . |
| |
| [source,java] |
| ---- |
| |
| <user username="user" password="userpw01" roles="UserRole"/> |
| ---- |
| |
| O arquivo ``tomcat-users.xml`` terá a seguinte aparência: |
| |
| |
| [source,xml] |
| ---- |
| |
| <tomcat-users> |
| <!-- |
| <role rolename="tomcat"/> |
| <role rolename="role1"/> |
| <user username="tomcat" password="tomcat" roles="tomcat"/> |
| <user username="both" password="tomcat" roles="tomcat,role1"/> |
| <user username="role1" password="tomcat" roles="role1"/> |
| --> |
| ... |
| <role rolename="AdminRole"/> |
| <role rolename="UserRole"/> |
| <user username="user" password="userpw01" roles="UserRole"/> |
| <user username="admin" password="adminpw1" roles="AdminRole"/> |
| [User with manager-script role, defined when Tomcat 7 was registered with the IDE] |
| ... |
| </tomcat-users> |
| ---- |
| |
| |
| === Definindo Usuários e Grupos no WebLogic Server |
| |
| Para este cenário, é necessário primeiro usar a Console de Administração do WebLogic Server para criar dois novos usuários chamados ``user`` e ``admin`` . Adicione esses usuários aos grupos ``userGroup`` e ``adminGroup`` , respectivamente. Posteriormente, você designará atribuições de segurança a esses grupos. O ``userGroup`` terá acesso limitado à aplicação, enquanto que o ``adminGroup`` terá privilégios de administração. |
| |
| As instruções gerais sobre como adicionar usuários e grupos ao servidor WebLogic se encontram na link:http://download.oracle.com/docs/cd/E21764_01/apirefs.1111/e13952/taskhelp/security/ManageUsersAndGroups.html[+Ajuda On-Line da Console de Administração+] do WebLogic. |
| |
| *Para adicionar os usuários “user” e “admin” e os grupos ao WebLogic:* |
| |
| 1. Abra a Console de Administração na janela Serviços do IDE e clique com o botão direito do mouse em Servidores > WebLogic Server > Exibir Console de Administração. A página de log-in do GlassFish Server será aberta na janela do browser. Você deverá fazer log-in usando o nome de usuário e a senha de administrador para acessar a Console de Administração. |
| |
| *Observação: *O Servidor de Aplicações deve estar em execução antes de você acessar a Console de Administração. Para iniciar o servidor, clique com o botão direito do mouse no nó do WebLogic Server e selecione Iniciar. |
| |
| 2. No painel esquerdo, selecione Realms de Segurança. A página Resumo de Realms de Segurança será aberta. |
| 3. Na página Resumo de Realms de Segurança, selecione o nome do realm (o realm default é “myrealm”). A página Definições de Nome do Realm será aberta. |
| 4. Na página Definições de Nome do Realm, selecione Usuários e Grupos > Usuários. A tabela Usuários será exibida. |
| 5. Na tabela Usuários, clique em Novo. A página Criar Novo Usuário será aberta. |
| 6. Digite no nome “user” e na senha “userpw01”. Opcionalmente, digite uma descrição. Aceite o Provedor de Autenticação default. |
| image::images/wl-admin-newuser.png[] |
| 7. Clique em OK. Retorne para a tabela Usuários. |
| 8. Clique em Novo e adicione um usuário chamado “admin” e a senha “admin1”. |
| 9. Abra a guia Grupos. A tabela Grupos será exibida. |
| 10. Clique em Novo. A janela Criar um Novo Grupo será aberta. |
| 11. Defina o nome do grupo como userGroup. Aceite o provedor default e clique em OK. Você retornará para a tabela Grupos. |
| 12. Clique em Novo e crie o grupo adminGroup. |
| 13. Abra a guia Usuários para o próximo procedimento. |
| |
| Agora, adicione o usuário ``admin`` ao ``adminGroup`` e o usuário ``user`` ao ``userGroup`` . |
| |
| *Para adicionar usuários a grupos:* |
| |
| 1. Na guia Usuários, clique no usuário ``admin`` . A página Definições do usuário será aberta. |
| 2. Na página Definições, abra a guia Grupos. |
| 3. Nos Grupos Pai: Disponível: tabela, selecione ``adminGroup`` . |
| 4. Clique na seta para a direita, >. O ``adminGroup`` será exibido nos Grupos Pais: Selecionado: tabela. |
| image::images/wl-admin-usersettings.png[] |
| 5. Clique em Salvar. |
| 6. Retorne à guia Usuários. |
| 7. Clique no usuário ``user`` e adicione-o ao ``userGroup`` . |
| |
| |
| == Configurando o Método de Log-in |
| |
| Ao configurar o método de log-in da aplicação, você pode usar a janela de log-in fornecida pelo browser para autenticação de log-in básico. Como alternativa, você pode criar uma página Web com um form de log-in. Ambos os tipos de configuração de log-in são baseadas na autenticação de usuário/senha. |
| |
| Para configurar o log-in, crie _restrições de segurança_ e designe atribuições a elas. As restrições de segurança definem um conjunto de arquivos. Quando você designa uma atribuição a uma restrição, os usuários com essa atribuição passam a ter acesso aos conjuntos de arquivos definidos pela restrição. Por exemplo, neste tutorial você designa a atribuição AdminRole à restrição AdminConstraint e as atribuições UserRole e AdminRole à restrição UserConstraint. Isso significa que os usuários com a AdminRole têm acesso aos arquivos de Administrador e arquivos de Usuário, mas os usuários com a UserRole têm acesso somente ao arquivos de Usuário. |
| |
| *Observação:* Não é um caso comum conceder o acesso separado da atribuição de administrador para arquivos de usuário. Uma alternativa é designar somente a UserRole à UserConstraint e, no lado do servidor, conceder a AdminRole a *usuários* específicos que também são administradores. Você deve decidir como o acesso será concedido caso a caso. |
| |
| Configure o método de log-in para a aplicação, configurando ``web.xml`` . O arquivo ``web.xml`` pode ser encontrado no diretório Arquivos de Configuração da janela Projetos. |
| |
| |
| === Log-in Básico |
| |
| Quando você utiliza a configuração de log-in básico, a janela de log-in é fornecida pelo browser. É necessário ter um nome de usuário e uma senha válidos para acessar o conteúdo seguro. |
| |
| As seguintes etapas mostram como configurar um log-in básico para GlassFish Servers e WebLogic Servers. Usuários Tomcat precisam usar o <<form-login,log-in com form>>. |
| |
| *Para configurar o log-in básico:* |
| |
| 1. Na janela Projetos, expanda o nó Arquivos de Configuração do projeto e clique duas vezes em ``web.xml`` . O arquivo ``web.xml`` será aberto no Editor Visual. |
| 2. Clique em Segurança na barra de ferramentas para abrir o arquivo na view Segurança. |
| 3. Expanda o nó Configuração de Log-in e defina a Configuração de Log-in como Básico. |
| |
| *Observação: *Se você quiser usar um form, selecione Form em vez de Básico e especifique o log-in e as páginas de erro de log-in. |
| |
| 4. Insira um nome de realm, dependendo do seu servidor. |
| * *GlassFish:* Especifique ``file`` como o Nome do Realm. Este é o nome default do realm onde você criou os usuários no GlassFish Server. |
| * *Tomcat:* Não especifique um nome de realm. |
| * *WebLogic:* Especifique o nome do realm. O realm default é ``myrealm`` . |
| image::images/security-roles.png[] |
| 5. Expanda o nó Atribuições de Segurança e clique em Adicionar para adicionar um nome de atribuição. |
| 6. Adicione as Seguintes Atribuições de Segurança: |
| * ``AdminRole`` . Os usuários adicionados a esta atribuição terão acesso ao diretório ``secureAdmin`` do servidor. |
| * ``UserRole`` . Os usuários adicionados a esta atribuição terão acesso ao diretório ``secureUser`` do servidor. |
| |
| *Cuidado:* os nomes de atribuição no GlassFish devem começar com letra maiúscula. |
| |
| 7. Crie e configure um restrição de segurança chamada ``AdminConstraint`` , fazendo o seguinte: |
| 1. Clique em Adicionar Restrição de Segurança. Será exibida uma seção para a nova restrição de segurança. |
| 2. Indique ``AdminConstraint`` para o Nome de View da nova restrição de segurança. |
| image::images/admin-constraint.png[] |
| 3. Clique em Add. A caixa de diálogo Adicionar Recurso da Web é aberta. |
| 4. |
| Na caixa de diálogo Adicionar Recurso da Web, defina o Nome do Recurso como ``Admin`` e o Padrão de URL como ``/secureAdmin/*`` e clique em OK. A caixa de diálogo é fechada. |
| |
| *Observação: * Ao utilizar um asterisco (*), você permite que o usuário tenha acesso a todos os arquivos dessa pasta. |
| |
| image::images/addwebresource.png[] |
| 5. Selecione Ativar Restrição de Autenticação e clique em Editar. A caixa de diálogo Editar Nomes de Atribuições será aberta. |
| 6. Na caixa de diálogo Editar Nomes de Atribuições, selecione AdminRole no painel esquerdo, clique em Adicionar e em OK. |
| |
| Depois de concluídas as etapas acima, o resultado deverá ser semelhante à figura a seguir: |
| |
| image::images/constraints.png[] |
| 8. Crie e configure uma restrição de segurança chamada ``UserConstraint`` , fazendo o seguinte: |
| 1. Clique em Adicionar restrição de segurança para criar uma nova restrição de segurança. |
| 2. Indique ``UserConstraint`` para o Nome de View da nova restrição de segurança. |
| 3. Clique em Adicionar para adicionar uma Coleção de Recursos da Web. |
| 4. Na caixa de diálogo Adicionar Recurso da Web, defina o Nome do Recurso como ``User`` e o Padrão de URL como ``/secureUser/*`` e clique em OK. |
| 5. Selecione Ativar Restrição de Autenticação e clique em Editar para editar o campo Nome da Atribuição. |
| 6. Na caixa de diálogo Editar Nomes de Atribuições, selecione AdminRole e UserRole no painel esquerdo, clique em Adicionar e em OK. |
| Observação: Você também pode definir o time-out da sessão em web.xml. Para definir o time-out, clique na guia Geral do Editor Visual e especifique quanto tempo você deseja que a sessão dure. O default é 30 minutos. |
| |
| |
| |
| === Log-in com Form |
| |
| A utilização de um form para log-in permite que você personalize o conteúdo das páginas de log-in e de erro. As etapas para configurar a autenticação usando um form são as mesmas para a configuração do log-in básico, com a diferença que você especifica as <<loginform,páginas de log-in e de erro>> criadas. |
| |
| As seguintes etapas mostram como configurar um form para log-in |
| |
| 1. Na janela Projetos, clique duas vezes em ``web.xml`` localizado no diretório ``Web Pages/WEB-INF`` para abrir o arquivo no Editor Visual. |
| 2. Clique em Segurança na barra de ferramentas para abrir o arquivo na view Segurança e expanda o nó Configuração de Log-in. |
| 3. Defina a Configuração de Log-in como Form. |
| 4. Defina a Página de Log-in com Form, clicando em Procurar e localizando ``login.jsp`` . |
| 5. |
| Defina a Página de Erro de Form, clicando em Procurar e localizando ``loginError.html`` . |
| |
| image::images/login-forms.png[] |
| 6. Insira um nome de realm, dependendo do seu servidor. |
| * *GlassFish:* Especifique ``file`` como o Nome do Realm. Este é o nome default do realm onde você criou os usuários no GlassFish Server. |
| * *Tomcat:* Não especifique um nome de realm. |
| * *WebLogic:* Especifique o nome do realm. O realm default é ``myrealm`` . |
| 7. Expanda o nó Atribuições de Segurança e clique em Adicionar para adicionar um nome de atribuição. |
| 8. Adicione as Seguintes Atribuições de Segurança: |
| |=== |
| |
| |Atribuição Servidor |Descrição |
| |
| |AdminRole |Os usuários adicionados a esta atribuição terão acesso ao diretório ``secureAdmin`` do servidor. |
| |
| |UserRole |Os usuários adicionados a esta atribuição terão acesso ao diretório ``secureUser`` do servidor. |
| |=== |
| 9. Crie e configure um restrição de segurança chamada ``AdminConstraint`` , fazendo o seguinte: |
| 1. Clique em Adicionar restrição de segurança para criar uma nova restrição de segurança. |
| 2. Especifique ``AdminConstraint`` para o Nome de View da nova restrição de segurança. |
| 3. Clique em Adicionar para adicionar uma Coleção de Recursos da Web. |
| 4. |
| Na caixa de diálogo Adicionar Recurso da Web, defina o Nome do Recurso como ``Admin`` e o Padrão de URL como ``/secureAdmin/*`` e clique em OK. |
| |
| *Observação: * Ao utilizar um asterisco (*), você permite que o usuário tenha acesso a todos os arquivos dessa pasta. |
| |
| image::images/addwebresource.png[] |
| 5. Selecione Ativar Restrição de Autenticação e clique em Editar. A caixa de diálogo Editar Nomes de Atribuições será aberta. |
| 6. Na caixa de diálogo Editar Nomes de Atribuições, selecione AdminRole no painel esquerdo, clique em Adicionar e em OK. |
| |
| Depois de concluídas as etapas acima, o resultado deverá ser semelhante à figura a seguir: |
| |
| image::images/constraints.png[] |
| 10. Crie e configure uma restrição de segurança chamada ``UserConstraint`` , fazendo o seguinte: |
| 1. Clique em Adicionar restrição de segurança para criar uma nova restrição de segurança. |
| 2. Indique ``UserConstraint`` para o Nome de View da nova restrição de segurança. |
| 3. Clique em Adicionar para adicionar uma Coleção de Recursos da Web. |
| 4. Na caixa de diálogo Adicionar Recurso da Web, defina o Nome do Recurso como ``User`` e o Padrão de URL como ``/secureUser/*`` e clique em OK. |
| 5. Selecione Ativar Restrição de Autenticação e clique em Editar para editar o campo Nome da Atribuição. |
| 6. Na caixa de diálogo Editar Nomes de Atribuições, selecione AdminRole e UserRole no painel esquerdo, clique em Adicionar e em OK. |
| Observação: Você também pode definir o time-out da sessão em web.xml. Para definir o time-out, clique na guia Geral do Editor Visual e especifique quanto tempo você deseja que a sessão dure. O default é 30 minutos. |
| |
| |
| == Configurando os Descritores de Implantação de Servidor |
| |
| Se você estiver implantando sua aplicação em um GlassFish Server ou WebLogic Server, será necessário configurar o descritor de implantação de servidor para mapear as atribuições de segurança definidas em ``web.xml`` . O descritor de implantação de servidor está listado no nó Arquivos de Configuração do seu projeto na janela Projetos. |
| |
| |
| === Configurando o Descritor de Implantação do GlassFish Server |
| |
| O descritor de implantação do GlassFish Server é chamado de ``glassfish-web.xml`` . O descritor de implantação de servidor se encontra na pasta Arquivos de Configuração. Se não for esse o caso, crie o descritor clicando com o botão direito do mouse no nó do projeto e selecionando Novo > Outro > GlassFish > Descritor de Implantação do GlassFish. Aceite todos os defaults. |
| |
| Observe que os valores inseridos em ``web.xml`` serão exibidos em ``glassfish-web.xml`` . O IDE pega esses valores do ``web.xml`` para você. |
| |
| *Para configurar o descritor de implantação do GlassFish:* |
| |
| 1. Na janela Projetos, expanda o nó Arquivos de Configuração do projeto e clique duas vezes em ``glassfish-web.xml`` . O descritor de implantação do ``glassfish-web.xml`` será aberto em um editor especial tabulado para descritores de implantação do GlassFish. |
| |
| *Observação:* Em versões do GlassFish Server anteriores à 3.1, esse arquivo é chamado ``sun-web.xml`` . |
| |
| 2. Selecione a guia Segurança para revelar as atribuições de segurança. |
| 3. Selecione o nó da atribuição de segurança AdminRole para abrir o painel Mapeamento de Atribuição de Segurança. |
| 4. |
| Clique em Adicionar principal e especifique ``admin`` como o nome principal. Clique em OK. |
| |
| image::images/add-principal.png[] |
| 5. Selecione o nó da atribuição de segurança UserRole para abrir o painel Mapeamento de Atribuição de Segurança. |
| 6. Clique em Adicionar Principal e especifique ``user`` como o nome principal. Clique em OK |
| 7. Salve as alterações em ``glassfish-web.xml`` . |
| |
| Também é possível exibir e editar o ``glassfish-web.xml`` no editor de XML clicando na guia XML. Se você abrir o ``glassfish-web.xml`` no editor XML, você verá que o ``glassfish-web.xml`` possui as seguintes informações de mapeamento de atribuição de segurança: |
| |
| [xml-tag]#<security-role-mapping> |
| <role-name># |
| |
| [source,xml] |
| ---- |
| |
| AdminRole[xml-tag]#</role-name> |
| <principal-name>#admin[xml-tag]#</principal-name> |
| </security-role-mapping> |
| <security-role-mapping> |
| <role-name>#UserRole[xml-tag]#</role-name> |
| <principal-name>#user[xml-tag]#</principal-name> |
| </security-role-mapping># |
| ---- |
| |
| |
| === Configurando o Descritor de Implantação do WebLogic Server |
| |
| O descritor de implantação do WebLogic é chamado de ``weblogic.xml`` . Atualmente, o <<gf-dd,suporte para descritores de implantação do GlassFish>> do IDE não se estende aos descritores de implantação do WebLogic. Portanto, você precisa fazer todas as alterações no ``weblogic.xml`` manualmente. |
| |
| O descritor de implantação do WebLogic Server se encontra na pasta Arquivos de Configuração. Se não for esse o caso, crie o descritor clicando com o botão direito do mouse no nó do projeto e selecionando Novo > Outro > WebLogic > Descritor de Implantação do WebLogic. Aceite todos os defaults. |
| |
| *Observação:* Para obter mais informações sobre a segurança de aplicações Web no WebLogic, incluindo segurança declarativa e programática, consulte link:http://download.oracle.com/docs/cd/E21764_01/web.1111/e13711/thin_client.htm[+Oracle Fusion Middleware Programming Security for Oracle WebLogic Server.+]. |
| |
| *Para configurar o descritor de implantação do WebLogic:* |
| |
| 1. Na janela Projetos, expanda o nó Arquivos de Configuração do projeto e clique duas vezes em ``weblogic.xml`` . O descritor de implantação do ``weblogic.xml`` será aberto no Editor. |
| 2. Dentro do elemento ``<weblogic-web-app>`` , digite ou cole os seguintes elementos de designação de atribuição de segurança:[xml-tag]#<security-role-assignment> |
| <role-name># |
| |
| [source,xml] |
| ---- |
| |
| AdminRole[xml-tag]#</role-name> |
| <principal-name>#adminGroup[xml-tag]#</principal-name> |
| </security-role-assignment> |
| <security-role-assignment> |
| <role-name>#UserRole[xml-tag]#</role-name> |
| <principal-name>#userGroup[xml-tag]#</principal-name> |
| </security-role-assignment># |
| ---- |
| 3. Salve as alterações em ``weblogic.xml`` . |
| |
| |
| == Implantando e Executando a Aplicação |
| |
| Na janela Projetos, clique com o botão direito do mouse no nó do projeto e selecione Executar. |
| |
| *Observação:* Por default, o projeto foi criado com a funcionalidade Compilar ao Salvar ativado, então, não é necessário compilar o código primeiro para executar a aplicação no IDE. Para obter mais informações sobre a funcionalidade Compile on Save, consulte link:http://www.oracle.com/pls/topic/lookup?ctx=nb8000&id=NBDAG510[+Building Java Projects+] no _Developing Applications with NetBeans IDE User's Guide_. |
| |
| Após a construção e a implantação da aplicação no servidor, a página inicial será aberta no seu Web browser. Selecione a área segura que deseja acessar, clicando em *admin* ou *user*. |
| |
| image::images/deploy1.png[] |
| |
| Após o fornecimento de usuário e senha, existem três resultados possíveis: |
| |
| * A senha deste usuário está correta e o usuário tem privilégios para o conteúdo protegido -> a página de conteúdo protegido será exibida |
| |
| image::images/deploy2.png[] |
| * |
| A senha deste usuário está incorreta -> A página de erro será exibida |
| |
| image::images/deploy3.png[] |
| * |
| A senha deste usuário está correta, mas o usuário não tem direito a acessar o conteúdo protegido -> o browser exibe Erro 403 O acesso ao recurso solicitado foi negado |
| |
| image::images/deploy4.png[] |
| |
| |
| == Resumo |
| |
| Neste tutorial, você criou uma aplicação Web protegida. Você editou as definições de segurança usando os editores de Descritor web.xml e glassfish-web.xml, criando páginas Web com log-ins seguros e diversas identidades. |
| |
| |
| |
| == Consulte Também |
| |
| * link:quickstart-webapps.html[+Introdução ao Desenvolvimento de Aplicações Web+] |
| * link:../../trails/java-ee.html[+Trilha de Aprendizado do Java EE e Java Web+] |
| |
| |
| |=== |
| | |
| link:/about/contact_form.html?to=3&subject=Feedback: Securing a Web Application[+Enviar Feedback neste Tutorial+] |
| |
| |
| |=== |