ultimos recursos jobson ronan {[email protected]}
TRANSCRIPT
![Page 2: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/2.jpg)
Objetivos
Visão (ultra)geral do JNDI Visão geral de mecanismos J2EE de segurança Integração Struts-Hibernate? Aplicação exemplo
![Page 3: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/3.jpg)
JNDI
O que é? Uma especificação para um servidor de nomes em java.
Como assim? Um repositórios de recursos acesiveis por nome
![Page 4: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/4.jpg)
Configurando O Tomcat 5 fornece uma implementação do JNDI
InitialContext para cada aplicação web implantada Esta pode ser acessada da meneira padrão especificada pelo
J2EE O padrão J2EE fornece um conjunto de elementdos (tags)
padrões no WEB-INF/web.xml para indicar recursos referênciados. Os recursos referênciados nestes elementos devem ser definidos em
configurações específicas do servidor
![Page 5: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/5.jpg)
Usando com o Tomcat
Adiquirindo o contexto JNDI (ex:)// Obtain our environment naming contextContext initCtx = new InitialContext();Context envCtx = (Context) initCtx.lookup("java:comp/env");
// Look up our data sourceDataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB");// Allocate and use a connection from the poolConnection conn = ds.getConnection();
... use this connection to access the database ... conn.close();
![Page 6: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/6.jpg)
Recursos de segurança
A especificação Servlet 2.3 permite a configuração de segurança em dois domínios Autenticação: o processo de verificação da identidade do usuário que solicita
um recurso - quem é? Autorização: processo de verificação das permissões que um usuário
autenticado possui - o que ele pode fazer? Os dois recursos podem ser configurados para cada contexto no
web.xml definindo Login Configuration: configuração de métodos de autenticação utilizados Security Roles: perfis de usuário para autorização Security Constraint: URLs e métodos de acesso permitidos e perfis de
segurança necessários para acessá-los
![Page 7: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/7.jpg)
Configuração de Login Escolha uma dentre quatro técnicas de autenticação
BASIC: mostra uma janela do browser que recebe nome e senha. Os dados são enviados em conexão insegura
FORM: igual a BASIC mas em vez de usar uma janela do browser, pemite o uso de um formulário HTML
DIGEST: usa criptografia fraca para enviar os dados CLIENT-CERT: requer certificado X-509 para funcionar e usa criptografia forte
(128-bit) BASIC, FORM e DIGEST são seguros
se usados com SSL
![Page 8: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/8.jpg)
Autorização: perfis de usuário Uma vez definida a forma de autenticação, é preciso definir perfis de
usuário habilitados a acessar os recursos A declaração de perfis de usuários é feita no web.xml usando
<security-role>. A associação desses perfis com usuários reais é dependente de servidor
![Page 9: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/9.jpg)
Associação de perfis com usuário no Tomcat Para definir domínios de segurança no Tomcat veja a documentação
do servidor sobre security realms:http://localhost:8080/tomcat-docs/realm-howto.html
Há diferentes níveis diferentes de configuração. Um grava os dados em banco relacional (JDBC Realm e DataSource Realm), outro em LDAP via JNDI (JNDI Realm), mais o JAAS Realm, e o mais simples usa um par de arquivos (Memory Realm)
Para usar Memory Realm, localize o arquivo tomcatusers.xml no diretório conf/ em $TOMCAT_HOME e acrescente os usuários, senhas e perfis desejados
![Page 10: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/10.jpg)
Web-Resource Collection A coleção de recursos Web protegidos e os métodos de
acesso que podem ser usados para acessá-los é definido em um bloco <web-resource-collection> definido dentro de <security-constraint> Inclui URL-patterns <url-pattern> que indicam quais os
mapeamentos que abrangem a coleção Inclui um <http-method> para cada método permitido
![Page 11: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/11.jpg)
Security Constraint O Web Resource Collection faz parte do Security Constraint
que associa perfis de usuário (papéis lógicos) à coleção
![Page 12: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/12.jpg)
Form-based Login Para autenticação por formulário, é preciso definir no <login-config>
FORM como <auth-method> Adicionalmente, é informada a página que implementa o formulário.
Esta página deve conter um elemento <FORM> HTML com algumas restrições Atributo ACTION de <FORM> deve conter: j_security_check Campo <INPUT> do nome deve conter: j_username Campo <INPUT> da senha deve conter: j_password
![Page 13: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/13.jpg)
Ativando SSL no Tomcat Em dois passos
Criar um Certificate Keystore:> %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
especificando o password para “changeit” Descomentar a entrada “SSL HTTP/1.1 Connector” no arquivo de
configuração em $CATALINA_HOME/conf/server.xml Acessos seguros são realizados por chamadas a links
precedidos por https Pode ser ativado como requerido em um sercurity-constraint
<user-data-constraint> <transport-guarantee>CONFIDENTIAL</transport-guarantee></user-data-constraint>
![Page 14: Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}](https://reader033.vdocuments.com.br/reader033/viewer/2022052704/570638441a28abb8238f25b8/html5/thumbnails/14.jpg)
Integração Struts-Hibernate
Um único Desafios/Decisão Como obter o Session factory?
Métodos estáticos Durante Inicialização do Contexto ...alguma outra?
Ver aplicação exemplo!