Criando aplicações web seguras – Parte 2 - Revista Java Magazine 115
Neste segundo artigo da série sobre como criar aplicações web seguras, daremos continuidade ao desenvolvimento da aplicação Acadêmico Seguro, demonstrando a criação do formulário de login e as configurações necessárias para sua integração.
Recursos especiais neste artigo:
Artigo no estilo Curso Online
Neste segundo artigo da série sobre como criar aplicações web seguras, daremos continuidade ao desenvolvimento da aplicação Acadêmico Seguro, demonstrando a criação do formulário de login e as configurações necessárias para sua integração com a API JAAS. Será analisado também como utilizar recursos de criptografia para codificar as senhas dos usuários a fim de armazená-las em segurança, e por fim, demonstraremos as configurações para que a aplicação possa ser executada por meio de conexões seguras com HTTPS e certificados digitais.
Em que situação o tema é
útil
O tema abordado tem grande importância para o desenvolvimento de
aplicações corporativas, pois além de expor alguns conceitos teóricos sobre
segurança, apresentamos um exemplo prático com o objetivo de despertar o
interesse pelo assunto. Neste artigo, ao analisarmos questões como criptografia
e navegação por conexões seguras, visamos demonstrar como esses recursos podem
incrementar a segurança das aplicações que desenvolvemos.
Na primeira parte desta série de artigos com o tema “Criando aplicações web seguras”, foram relatados os conceitos sobre segurança e sua importância para as aplicações corporativas. Além disso, iniciamos o desenvolvimento de uma aplicação web com o intuito de desfrutá-la como laboratório para expor na prática os conceitos apresentados. Criamos, assim, todo o ambiente necessário para montar a aplicação, desde o banco de dados até a criação do projeto no Eclipse.
Com o ambiente de desenvolvimento criado, analisamos os conceitos de autenticação e autorização e em nossa aplicação empregamos essas definições por meio da API JAAS presente no Java. Para isso, configuramos o domínio de segurança do sistema no servidor GlassFish e definimos as roles que serão aplicadas para estabelecer as permissões de acesso às funcionalidades da aplicação.
Nesta segunda e última parte da série, vamos criar o formulário de login para que os usuários possam informar suas credenciais, nome de usuário e senha, para autenticar no sistema. Vamos analisar também os conceitos de criptografia e algoritmos hash e introduziremos esses recursos na aplicação para que as senhas dos usuários sejam codificadas com o objetivo de armazená-las com segurança no banco de dados.
Por fim, serão demonstradas as configurações necessárias, tanto em nível de servidor quanto em nível de aplicação, para que a aplicação desenvolvida, ao longo desses dois artigos, seja acessada por meio de conexões seguras através do protocolo HTTPS e certificados digitais.
Autenticação de usuários com formulário de login
Para que o usuário consiga se autenticar no sistema, a aplicação deve fornecer um formulário de login no qual o usuário possa informar suas credenciais de acesso. No entanto, para criarmos esse formulário, se faz necessário que já tenhamos configurado o domínio de segurança do JAAS no servidor de aplicação, os papéis/roles relacionados com os grupos de usuários e definidos as regras de autorização para acesso às telas da aplicação. Todas essas configurações foram realizadas na primeira parte dessa série de artigos.
Com essas configurações realizadas, podemos criar o formulário de login. Este formulário será apresentado no navegador toda vez que um usuário tentar acessar a aplicação sem ter informado primeiramente seu nome de usuário e senha corretos.
Basicamente, ele conterá dois campos que receberão o nome do usuário e a senha. O seu código é apresentado na Listagem 1. Nesta listagem aparecem em destaque os elementos utilizados pelo JAAS para executar a autenticação dos usuários. São eles: os campos username e password; e o botão <h:commandButton>, o qual executa a chamada ao método login() do ManagedBean LoginBean responsável pela lógica de autenticação do usuário.
Esse estilo de autenticação é conhecido como autenticação programática, pois estamos chamando um método de uma classe que irá se responsabilizar por garantir a autenticidade do usuário e realizar a autenticação no domínio de segurança do JAAS.
Listagem 1. Código
da página login.xhtml utilizada para realizar a autenticação dos usuários.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Academico Seguro</title>
<meta http-equiv="content-type" content="text/xhtml; charset=UTF-8" />
</h:head>
<body>
<h:form>
<p:panel header="Faça o Login para Entrar no Sistema"
>
<h:panelGrid columns="2" >
<h:outputLabel value="Nome Usuário:" />
<h:inputText id="username" value="#{loginBean.userName}" />
<h:outputLabel value="Senha: " />
<h:inputSecret id="password" value="#{loginBean.password}" />
<h:outputText value="" />
<h:commandButton action="#{loginBean.login}" value="Login"/>
</h:panelGrid>
</p:panel>
</h:form>
</body>
</html>"
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo