DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Java EE 6 na Prática – Parte 3 - Java Magazine 82

De novidades da plataforma Java EE, versão 6.0, lançada em dezembro de 2009, como padrão para desenvolvimento de aplicações corporativas (enterprise) em Java.Esta é a terceira e última parte de uma série de artigos sobre o tema, portanto sugere-se a leitura dos dois primeiros artigos da série nas duas últimas edições da Java Magazine.






Java EE 6 na Prática – Parte 3
O que há de novo na plataforma Java Enterprise Edition
Mostraremos mais algumas novidades da versão mais recente da plataforma Java, Enterprise Edition, utilizando como exemplo uma aplicação real

Esta é a terceira e última parte de uma série de artigos sobre a plataforma Java Enterprise Edition, versão 6. Na primeira parte, publicada na Edição 80 da Java Magazine, apresentamos a plataforma e suas novidades de maneira geral e começamos o desenvolvimento do SisContrAm, um sistema de controle de ambulâncias, desenvolvido com Java EE 6. Usando este sistema como exemplo, mostramos novas funcionalidades da plataforma: JPA 2.0, Bean Validation e o CDI, Contexts and Dependency Injection. Na segunda parte, publicada na Edição 81, falamos sobre Facelets, a API de Critérios, gerenciamento de conversações e suporte a AJAX.
Nesta edição, utilizando sempre o SisContrAm como exemplo, mostraremos mais novidades do Java EE 6:
•    JAAS: a API Java Authentication and Authorization Service faz parte do núcleo do Java SE (Standard Edition) e é a tecnologia base para implementação de segurança em aplicações Java EE 6. Veremos como registrar usuários e grupos no domínio de segurança do servidor de aplicação, autenticar usuários via formulário ou programaticamente e como proteger classes e páginas de acesso não autorizado;
•    Servlets 3.0: Java EE 6 inclui a especificação mais recente da API Servlets, a versão 3.0, que traz diversas novidades, dentre as quais anotações e fragmentos Web, que explicaremos em mais detalhes neste artigo;
•    Novos comandos da JPQL: a Java Persistence Query Language, linguagem de consultas utilizada para recuperar ou alterar dados referentes a objetos Java armazenados em bancos de dados relacionais, recebeu novos comandos na versão 2.0 da Java Persistence API (JPA). Mostraremos exemplos de uso destes novos comandos e discutiremos também o suporte ao travamento pessimista, outra novidade da JPA 2.0;
•    Melhoramentos EJB: a cada nova versão de Java EE, desenvolver com EJBs fica mais simples, facilitando a tarefa do desenvolvedor de utilizar a infraestrutura provida pelo container. Na versão 6 da plataforma, facilidades como EJBs sem interface, EJBs Singleton e métodos assíncronos foram adicionadas e serão mostradas neste artigo.

Mostraremos tudo isso melhorando as funcionalidades de login e registro de chamadas do SisContrAm, além de adicionar duas pequenas novidades ao sistema: um contador de requisições e um EJB de propriedades globais da aplicação. Para um melhor aproveitamento dos exemplos, é recomendável que o leitor tenha lido as duas primeiras partes desta série de artigos, preferencialmente experimentando os exemplos ali trazidos. Se não é o caso, o código-fonte do SisContrAm ao final do segundo artigo pode ser obtido no site da Java Magazine e utilizado como base para os exemplos deste artigo.
Autenticação e autorização com JAAS
Na segunda parte desta série de artigos desenvolvemos a funcionalidade de login do SisContrAm. O login é uma forma de implementar autenticação, que é o ato de reconhecer a pessoa que está utilizando o sistema como um usuário registrado e que tem direito a acessar suas funcionalidades. Autenticação é garantir que o usuário é realmente quem ele diz ser.
No entanto, autenticação sozinha não basta, é preciso também implementar autorização. Autorização, ou controle de acesso, consiste em determinar quais funções e informações do sistema o usuário, que já foi autenticado, está autorizado a acessar. Pode parecer que implementamos ambos no SisContrAm, pois se um funcionário for cadastrado como operador e fizer o login, somente a opção “Chamada de Emergência” será mostrada a ele. No entanto, se este funcionário digitar a URL http://localhost:8080/SisContrAm-war/faces/cadastrarAmbulancia/lista.xhtml em seu navegador, poderá usar sem restrições o cadastro de ambulâncias, que deveria ser restrito a administradores.
Podemos implementar a autorização no SisContrAm de várias formas, no entanto, a plataforma Java EE 6 inclui como parte do seu conjunto de tecnologias o JAAS – Java Authentication and Authorization Service, ou Serviço de Autenticação e Autorização de Java. O JAAS é uma das APIs centrais do Java SE e é a base dos mecanismos de segurança do Java EE que, além de autenticação e autorização, visam prover integridade de dados, confidencialidade, não repudiação  e auditoria.
Vamos, então, reimplementar o login utilizando os mecanismos de autenticação do Java EE, inicialmente utilizando o método de formulário e em seguida como seria a autenticação programática. Com o usuário autenticado, protegeremos as funcionalidades do SisContrAm contra acesso não autorizado utilizando anotações do JAAS, novidades no Java EE 6.
"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    7 COMENTÁRIOS

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Mauricio

Postei na edição anterior minha opnião sobre essa artigo o chamando de "Muito Ruim", e vou mudar minha opnião para Muito Confuso para mim.

Vitor vc não teria um projeto postado em edições anteriores que vc utiliza o IDE Eclipse, e que seja java para Web.
Obrigado
[há +1 ano] - Responder

 

Devmedia - Equipe De Moderação

Caro Mauricio,

 

Na Java Magazine não tenho, porém no meu site você poderá encontrar um artigo que escrevi que utiliza Eclipse para desenvolver uma aplicação Web utilizando os frameworks Struts2, Spring, Hibernate e SiteMesh. Foi escrita em 2007, então está um pouco defasado. Meu site é:

http://disi.unitn.it/~vitorsouza/pt/java/

 

Aqui no portal da DevMedia eu publiquei vídeo-aulas de desenvolvimento pra Web em um mini-curso. As duas primeiras falam de Servlets e JSP.

Depois eu passo para o framework Struts2 e, em cada passo, explico uma função diferente.

 

Bons estudos,

Vítor Souza

[há +1 ano] - Responder
 

Reinaldo Oliveira
Estou acompanhando essa matéria desde a primeira parte e tentando adaptar todos os códigos e exemplos para uma aplicação minha. Acontece que estou com um problema ao implementar um conversor para um campo "h:selectManyCheckbox". O Problema é que não consigo fazer uma chamada a um EJB dentro de uma classe anotada com @FacesConverter.

Existe alguma forma de fazer isso?
[há +1 ano] - Responder

 

Devmedia - Equipe De Moderação

Caro Reinaldo,

 

O que você pode fazer é criar uma classe que implemente o conversor, criar um método getConversor() no seu managed bean (controlador), construir uma instância do conversor neste método, passando os EJBs necessários ao conversor no construtor (o managed bean pode receber os EJBs via injeção de dependências - anotação @EJB) e, na sua tag h:selectManyCheckbox, fazer referência ao conversor assim:

#{meuManagedBean.conversor}. Isso irá chamado o método getConversor(), que irá criar o conversor passando as dependências via construtor e retorná-lo para o JSF.

 

Espero que ajude,

Vítor Souza

[há +1 ano] - Responder
 

Reinaldo Oliveira
Boa Vitor,

Funcionou, antes de ver a sua sugestão eu havia montado checkBox passando o ID do meu objeto no banco de dados ao invés de passar o objeto, e antes fazer a inserção eu utilizava um método para buscar o objeto através do ID. Mas da forma como me passou o código fica muito mais elegante.

Obrigado.
[há +1 ano] - Responder
 

Wagner Alves Da Silva Junior
Continue assim de altissima qualidade o artigo show!
[há +1 ano] - Responder

 

Wagner Alves Da Silva Junior
na pagina 30 o primeiro paragrafo esta duplicado.
[há +1 ano] - Responder

 



Publicidade
Autor
Vítor Estêvão Silva Souza

Graduação em Ciência da Computação e Mestrado em Informática com ênfase em Engenharia de Software na Universidade Federal do Espírito Santo (UFES), onde trabalhou também como professor substituto.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03