1 / 15

Ultimos recursos

Ultimos recursos. Jobson Ronan {jrjs@cin.ufpe.br}. Objetivos. Visão (ultra)geral do JNDI Visão geral de mecanismos J2EE de segurança Integração Struts-Hibernate? Aplicação exemplo. JNDI. O que é? Uma especificação para um servidor de nomes em java. Como assim?

dayton
Download Presentation

Ultimos recursos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}

  2. Objetivos • Visão (ultra)geral do JNDI • Visão geral de mecanismos J2EE de segurança • Integração Struts-Hibernate? • Aplicação exemplo

  3. JNDI • O que é? • Uma especificação para um servidor de nomes em java. • Como assim? • Um repositórios de recursos acesiveis por nome

  4. 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

  5. Usando com o Tomcat • Adiquirindo o contexto JNDI (ex:) // Obtain our environment naming context Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); // Look up our data source DataSource ds = (DataSource) envCtx.lookup("jdbc/EmployeeDB"); // Allocate and use a connection from the pool Connection conn = ds.getConnection(); ... use this connection to access the database ... conn.close();

  6. 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

  7. 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 segurosse usados com SSL

  8. 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

  9. 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

  10. 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

  11. Security Constraint • O Web Resource Collection faz parte do Security Constraint que associa perfis de usuário (papéis lógicos) à coleção

  12. 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

  13. 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>

  14. 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!

  15. Ultimos recursos Jobson Ronan {jrjs@cin.ufpe.br}

More Related