FACULDADE DE TECNOLOGIA SENAC GOIÁS CONTROLE DE ACESSO USANDO O FRAMEWORK RICHFACES 5º PERÍODO – Gestão da Tecnologia da Informação Alunos: Alessandro Aparecido André Alexandre Bruno Santiago Thiago Castilho GOIÂNIA 2014-1 Sumário 1. O Projeto .....................................................................................................................................................3 2. Desenvolvendo o Projeto ..............................................................................................................................3 3. Configuração do Servidor ..............................................................................................................................3 4. Configurando o uso do Framework RichFaces ................................................................................................5 5. Banco de Dados ...........................................................................................................................................6 6. Controle de Acesso .......................................................................................................................................7 7. Referências ................................................................................................................................................ 13 1. O Projeto Aplicações web são constituídas, normalmente, de recursos e funcionalidades públicos, acessíveis a toda pessoa em contato com a Internet, e outros protegidos por níveis específicos de acesso. É muito comum vermos, em portais pela web, áreas restritas para candidatos em treinamento, funcionários, professores, administradores de sistemas, exibidas apenas mediante o fornecimento de credenciais com nível de acesso compatível com aquele previamente cadastrado em sistemas de informação relacionados. Outro comportamento muito comum em sistemas web é a exibição de determinadas informações sobre as quais o leque de operações permitidas varia de acordo com o tipo de usuário. Para exemplificar, imagine um sistema hipotético de controle de produtos: enquanto estoquistas possuem um perfil que os permite digitar as informações dos produtos, os vendedores possuem um perfil um pouco mais restrito, que só os dá acesso à visualização dos produtos a serem vendidos. Embora a informação (produto) seja visível para ambos os perfis de usuário (estoquistas e vendedores), o escopo de atuação sobre ela varia sensivelmente. 2. Desenvolvendo o Projeto Desenvolver um sistema de controle de acesso utilizando os Frameworks apresentados na disciplina. Para esse projeto serão usados: - Eclipse como IDE de desenvolvimento. - PostgreSQL como Sistema Gerenciador de Banco de Dados (SGBD). - Hibernate como framework para o mapeamento objeto-relacional. - JPA como especificação para a persistência de dados - RichFaces como framework, sendo ele uma biblioteca de componentes para aplicações web que utilizam JSF. 3. Configuração do Servidor Passo 01: Crie uma nova pasta com o nome de Servidores na unidade C:\de seu computador, faça o download do Servidor de Aplicações GlassFish, e salve-o nessa pasta. Passo 02: Faça a descompactação do arquivo glassfish-4.0.zip, no processo de descompactação o diretório glassfish4 deve ser criado. Observe dentro desse diretório a existência de um diretório com o nome de glassfish (diretório onde se encontra os arquivos do servidor de aplicações GlassFish). Passo 03: Abrir a IDE Eclipse (Versão Kleper JEE), definir o espaço de trabalho na janela Workspace Launcher. Sendo esse espaço de trabalho o diretório onde os projetos serão armazenados. Passo 04: Com a janela da IDE Eclipse aberta, clique na guia Server e no link No servers are available. Click this link to create a new server... . Caso a guia Server não esteja visível vá ao menu Windows --> Show View --> Servers. Passo 05: Para adicionar um novo adaptador para o servidor de aplicações GlassFish, na janela New Server, clique no link Download additional Server adapters. Passo 06: Na janela Install new Extension, aguarde até que a lista de adaptadores seja carregada, selecione o adaptador GlassFish Tools e clique no botão Next. Passo 07: Na janela Install new Extension, leia a licença de uso do adaptador e caso concorde clique na opção Accept the terms of the licence agreement e clique no botão Finish. Passo 08: Na janela de opções Install new Extension clique no botão OK. Passo 09: Observe o download dos plugins necessários ao adaptador na janela Installig GlassFish Tools. Passo 10: Na janela Software Updates clique no botão Yes. Passo 11: Aguarde que a IDE Eclipse seja reinicializada. Passo 12: Com a janela da IDE Eclipse aberta, clique na guia Server e no link No servers are available. Click this link to create a new server... . Caso a guia Server não esteja visível vá ao menu Windows --> Show View --> Servers. Passo 13: Na janela New Server, observe que aparece um novo tipo de adaptador para o servidor GlassFish, que acabamos de instalar, clique na seta em frente a pasta GlassFish e escolha a opção GlassFish 4.0 clique no botão Next. Passo 14: Na janela New Server, observe a mensagem Glassfish server runtime requires full JDK instead of JRE, clique no link Installed JRE preferences. Passo 15: Na janela Preferences (Installed JREs), clique no botão Add. Passo 16: Na janela Add JRE, selecione o tipo de JRE instalado (Installed JRE Types), no caso escolha Standard VM e clique no botão Next. Passo 17: Na janela Add JRE defina as opções da JRE, ou seja, defina o diretório onde o JDK (Kit de Desenvolvimento Java) está instalado, para isso clique no botão Directory. Passo 18: Na janela Procurar Pasta, procure pelo diretório onde o JDK está instalado, selecione o diretório e clique no botão OK. Passo 19: Na janela Add JRE, observe as alterações, principalmente o campoJRE Name e clique no botão Finish. Passo 20: Na janela Preferences, selecione a JRE recém configurada, e clique no botão OK. Passo 21: Na janela New Server, escolha a JRE recém configurada no combo box JDK, no campo GlassFish Server Directory, defina o diretório onde o GlassFish Server está instalado, para isso clique no botão Browser. Passo 22: Na janela Procurar Pasta, procure pelo diretório onde oGlassFish Server está instalado, selecione o diretório glassfish e clique no botão OK. Passo 23: Na janela New Server, observe a mensagem Found GlassFish Server version 4.0.0 e clique no botão Next. Passo 24: Na janela New Server (GlassFish Application Server) clique no botão Next. Passo 25: Na janela New Server (Add and Remove) clique no botão Finish. Passo 26: Observe na guia Server o servidor de aplicações GlassFish 4.0. Passo 27: Para iniciar o servidor GlassFish, na guia Server, dê um clique com o botão inverso do mouse sobre o servidor glassfish (GlassFish 4.0 at localhost [Stopped]) e escolha a opção Start. Observe que a guia Console e exibida com informações sobre o startup do servidor, e na parte inferior direita do Eclipse e mostrada a porcentagem do processo de inicialização do servidor. Se tudo ocorrer bem observe que o status do servidor e alterado de[Stopped] para [Started, Synchornized]. Passo 28: Para testar o servidor GlassFish, abra um navegador e digite o endereço: http://localhost:8080. Observe que a tela principal do GlassFishcom a mensagem Your server is now running. Passo 29: Para parar o servidor GlassFish, na guia Server, dê um clique com o botão inverso do mouse sobre o servidor glassfish (GlassFish 4.0 at localhost [Started, Synchornized]) e escolha a opção Stop. Observe a parte inferior direita do Eclipse e mostrada a porcentagem do processo de finalização do servidor. Se tudo ocorrer bem observe que o status do servidor e alterado de [Started, Synchornized] para [Stopped, Synchornized]. 4. Configurando o uso do Framework RichFaces RichFaces é uma biblioteca de componentes para aplicações web que utilizam o framework JSF. Os componentes desta biblioteca possuem um incrível suporte AJAX, e ela, pode ser considerada uma extensão do Ajax4jsf com inúmeros componentes com Ajax “embutido” e com um suporte a Skins que podem deixar as interfaces da sua aplicação com um visual padronizado. Instalação Baixar o RichFaces http://labs.jboss.com/jbossrichfaces Descompacte os arquivos richfaces-api-3.3.1.GA.jar richfaces-impl-3.3.1.GA.jar richfaces-ui-3.3.1.GA.jar na pasta WEB-INF/lib do seu projeto Registrando no web.xml Adicione as seguintes linhas no seu arquivo web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>ControleAcesso</display-name> <welcome-file-list> <welcome-file>index.xhtml</welcome-file> </welcome-file-list> <context-param> <param-name>org.richfaces.skin</param-name> <param-value>blueSky</param-value> </context-param> <context-param> <param-name>org.richfaces.enableControlSkinning</param-name> <param-value>true</param-value> </context-param> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.xhtml</url-pattern> </servlet-mapping> </web-app> 5. Banco de Dados Persistence.xml O arquivo persistence.xml encontra-se no diretório: ControleAcesso/src/META-INF/persistence.xml Classe JPAUtil A classe se encontra no diretório: ControleAcesso/src/br/com/projeto/útil/JPAUtil.java Banco de Dados: Tabelas: 6. Controle de Acesso O sistema realiza a validação do acesso do usuário, e se este possui privilégios para inserir e alterar os dados do sistema. Tela de erro caso senha e login errados Tela se usuário tem perfil administrador Tela de Cadastro de Usuários apenas para Administradores Listagem de Produtos somente para usuário com perfil não administrador. Visão do Projeto ControleAcesso Classe com as funcionalidades para Produto Classe com as funcionalidades para Usuário Página Administrador 7. Referências http://richfaces.jboss.org/ http://www.devmedia.com.br/conhecendo-o-richfaces-parte-i/6440 http://pt.scribd.com/doc/164634854/JSF-Controle-de-Sessoes-e-Controle-de-Acesso-pdf