VRaptor 3 - Revista Java Magazine 96 - Parte 3

No terceiro artigo da série daremos sequência ao estudo sobre o VRaptor 3 durante o desenvolvimento de uma aplicação web. Veremos aqui como implementar o controle de acesso através do login e permissões e como melhorar a interação do usuário com o sistema, deixando-o mais dinâmico e seguro.

Artigo no estilo: Curso

De que se trata o artigo:

No terceiro artigo da série daremos sequência ao estudo sobre o VRaptor 3 durante o desenvolvimento de uma aplicação web. Veremos aqui como implementar o controle de acesso através do login e permissões e como melhorar a interação do usuário com o sistema, deixando-o mais dinâmico e seguro.

Em que situação o tema útil:

Este tema é útil a todo desenvolvedor interessado em ter mais uma excelente opção Java para desenvolvimento web em sua caixa de ferramentas.

Resumo DevMan:

Neste artigo vamos aprender como desenvolver a funcionalidade de envio e recebimento de arquivos entre o usuário e a aplicação. Também será mostrado como tornar a aplicação mais segura mantendo um controle de login e permissão a determinadas áreas do sistema.

Na segunda parte deste minicurso, vimos como deixar o sistema desacoplado utilizando interfaces e como reaproveitar funcionalidades com classes Genéricas. Além disso, aprendemos como é possível facilitar o desenvolvimento da parte visual do sistema utilizando templates e a biblioteca visual jQuery UI.

Qualquer sistema que preze por seus dados e pela integridade da informação necessita de um controle rígido de segurança. No entanto, é comum encontrarmos aplicações web que não possuem um bom controle de acesso ou que apresentam falhas que possibilitam o uso indevido por pessoas mal intencionadas. Diante deste fato surgiram diversos mecanismos de segurança, e com a evolução das tecnologias se torna cada vez mais fácil implementar este controle.

Este será um dos objetivos desta terceira parte da série: demonstrar como implementar um controle de acesso e permissão às ações do sistema. O controle será feito baseando-se no privilégio de cada um dos usuários, que por sua vez poderão ter mais ou menos direito de acesso às funcionalidades de acordo com suas tarefas dentro da organização. A partir disso, iremos possibilitar uma maior interação entre o usuário e a aplicação, deixando-o livre para enviar as capas dos filmes, fotos dos artistas e a do seu perfil, tudo com ajuda do VRaptor.

Como fazer download e upload de arquivos

O VRaptor, através de alguns componentes, facilita bastante a manipulação de arquivos em formato stream. Sem nenhum componente para nos auxiliar nesta tarefa, o trabalho fica um tanto quanto desgastante, e foi pensando nisso que estes componentes foram criados. Com eles não temos a necessidade de movimentar cada byte do arquivo, já que esta tarefa é feita automaticamente através de simples métodos. Assim, tirando proveito destes recursos, será criado um formulário para fazer o upload das capas dos filmes para o servidor, bem como a opção de apresentação destas imagens.

Fazendo upload da capa de um filme

Para iniciarmos a codificação da funcionalidade de upload de imagens, devemos adicionar na entidade Filme um atributo do tipo String (neste caso, imagem) que será responsável por manter o nome do arquivo. Em seguida é necessário criar um formulário com um campo de envio de arquivos, de acordo com a Listagem 1.

Listagem 1. exibir.jsp: formulário de envio da imagem do filme.

<form action="${pageContext.request.contextPath}/filme/${filme.id}/imagem" enctype="multipart/form-data" method="post"> <input type="file" name="file"/> <input type="submit" value="enviar"/> </form>

Neste formulário, estamos fazendo um POST do arquivo escolhido incluindo o ID do filme na URI. Observe que o formulário deve estar configurado como enctype=“multipart/form-data” para suportar o envio de arquivos anexados, que em nosso caso será uma imagem. Após a configuração da view, devemos configurar o método que receberá esta imagem, como pode ser observado na Listagem 2.

Listagem 2. FilmeController.java: método que recebe a imagem do filme em formato stream.

@Post("/filme/{filme.id}/imagem") public void uploadImage(UploadedFile file, Filme filme) { try { repository.uploadImage(file, filme); } catch (Exception e) { result.include("error", e.getMessage()); } result.redirectTo(this).exibir(filme); }"

[...] continue lendo...

Artigos relacionados