Guilherme Baiestero Lopes

Propaganda
SEGURANÇA NO DESENVOLVIMENTO WEB
UTILIZANDO FRAMEWORK SPRING SECURITY
Guilherme Baiestero Lopes1, Késsia R. C. Marchi1
¹Universidade Paranaense (Unipar)
Paranavaí – PR – Brasil
[email protected], [email protected]
Resumo. Este artigo apresenta um investigação cientifica sobre a tecnologia
emergente para desenvolvimento de softwares para a web. É abordado nessa
pesquisa, a estrutura, as funcionalidades e os recursos que a framework
Spring Security possibilita fornecer e o resultado que ele proporcionou no
desenvolvimento de um aplicação, utilizando a ferramenta Java JSF (Java
Server Faces) que foi utilizada em uma implementação de um sistema de
gerenciamento de confecções.
1. Introdução
Com o aumento da demanda de tecnologia, algumas ferramentas vem se destacando na
área de desenvolvimento de software. A linguagem Java vem tendo um grande destaque
no meio dos programados que possibilita o desenvolvedor trabalhar em alto e baixo
nível.
No mundo de TI, segurança é uma palavra que tem que ser levada em conta com
um nível alto de relevância. Isso significa tantas coisas diferentes em tantos diferentes
contextos, que por fim, deve ser levado sobre uma proteção de recursos sensíveis e
valiosos contra o uso malicioso. [Scarioni 2013]
A ferramenta Spring Security, possibilita que a autenticação fique forte e
altamente personalizável e ainda estabelece uma estrutura de controle de acesso que é o
padrão de facto para a proteção de aplicativos baseados na framework Spring. [Chhatpar
2006]
Com o aumento da produção de software os problemas são frequentes, a
framework Spring possibilita solucionar inúmeros problemas comuns presentes no
desenvolvimento J2EE e Java JEE. O objetivo dessa ferramenta é lembrar de fazer a
coisa certa na programação orientada a objetos: projetar aplicações usando interfaces.
[Chhatpar 2006]
Este trabalho tem como objetivo descrever um pesquisa científica sobre a
framework Spring, fazendo uma abordagem sobre Spring Security que tem um
reconhecimento enorme entre os programadores quando o assunto é segurança. No
artigo apresenta os resultados que foram adquiridos no desenvolvimento utilizando à
ferramenta.
2. Apresentação da Framework
Atualmente mantido pela empresa Interface21, o Spring é uma framework que traz
diversos benefícios as aplicações, aumentando a produtividade no desenvolvimento de
aplicações além de promover um grande aumento de performance em tempo de runtime
e facilitar o trabalho com testes unitários. [Schittini 2011]
O Spring Framework é composto por recursos organizados em cerca de 20
módulos, tais módulos podem ser implementados separadamente ou em conjunto com
outros, isto permite ao Spring ser aplicado nos mais variados tipos de aplicações, sendo
estas de qualquer porte. [Calçado 2008; Johson 2011]
Dentro da Spring existem vários projetos que auxiliam no desenvolvimento. O
Spring Security é um dos projetos mais maduros e amplamente utilizado. Fundado pela
SpringSource em 003 ele é usado para garantir inúmeros ambientes exigentes, como:
agências governamentais, aplicações militares e bancos centrais. Para que o usuário
possa usá-lo com confiança em seus projetos a Apache 2.0 libera a licença. [Winch
2012]
Diferente de muitas essa ferramenta é fácil de aprender, implementar e gerenciar.
O namespace fornece diretrizes para operações e permite que com apenas algumas
linhas de XML a segurança do aplicativo esteja completo. [Winch 2012]
3. Estrutura da Framework
A estrutura é dedicada a fornecer um pacote completo de serviços de segurança para
aplicações Java em uma maneira desenvolvedor amigável e flexível. A figura 1 mostra a
estrutura de código para a implementação.
Figura 1: Estrutura da framework [Brunetta 2011]
Com o aumento de softwares que são desenvolvidos para web, as preocupações
com o sistemas são maiores, para garantir uma melhor segurança contra ataques
maliciosos. Com a implementação da Spring Security nesse projeto, o software vai
estabelecer um nível maior de segurança possibilitando assim mais tranquilidade aos
usuário.
4. Utilizacão no Projeto
Em uma empresa existe vários funcionários, cada empregado tem suas funções e
permissões. Para que o usuário tenha acesso somente ao que é permitido e preciso de um
nível de acesso.
O objetivo da implementação desse método na aplicação é estabelecer quais os
níveis de cada usuário. Para que ele tenha acesso é necessário digitar o usuário e a
senha, para cada usuário existe o seu nível de acesso, se ele vai poder realizar vendas,
visualizar relatórios, visualizar fluxo de caixa, todas essas operações vão depender do
seu nível de acesso. A figura 2 está mostrando a entidade Roles, que define qual ou
quais permissões o usuário possui na utilização do software.
Figura 2 Implementando Spring Security [Francisco 2013]
Como todo framework necessita de uma configuração para o funcionamento,
utilizando a Spring Security também não e diferente. Na figura 3 está definindo que
qualquer pagina dentro da pasta pages, só poderá ser acessada se existir algum usuário
logado e que dentro das pastas user e admin, o usuário precisará ter permissões
especiais, no caso na pasta user, o usuário precisará possuir a permissão ROLE_USER e
pasta a admin o usuário precisará possuir a permissão ROLE_ADMIN.
Está também define uma página de erro, caso o usuário não tenha permissão para
acessar aquela pagina. Caso contrário não esteja logado e tente acessar alguma pagina,
ele será redirecionado para a página de login. Também define que a classe responsável
pela autenticação será a Authenticator.
Figure 3 Configuração Spring Security [Francisco 2013]
5. Metodologia
Para elaboração deste trabalho, foram feitas pesquisas em livros e estudos em artigos
literários, ambos como base no conteúdo sobre framework Spring Security. Procurando
mostrar sua contribuição no desenvolvimento de software.
6. Conclusão
A utilização de frameworks em projetos de desenvolvimento de softwares se torna uma
pratica bastante utilizada. O Spring é uma framework com um potencial indiscutível, e
sua aplicação em projetos fornece uma maior segurança, aumentando a qualidade do
software.
Pode-se concluir que o desenvolvimento de software, em Java, utilizando-se da
framework Spring Security torna-se o sistema mais seguro e com qualidade,
proporcionando mais tranquilidade ao usuário.
7. Referencias
Brunetta, Andrii (2011). Java EE 6: Segurança com Spring Security 3.0.5.Disponivel
em:<http://javasemcafe.blogspot.com.br/2011/05/java-ee-6-seguranca-com-springsecurity.html> Acesso em: 01 de Agosto 2013
Calçado, P. (2008) “Curso Spring Framework”. Disponível em:
<http://blog.flexdev.com.br/wp-content/uploads/spring/apostila-spring.pdf> acesso em
14 de Agosto 2013.
Chhatpar, Arun (2006). Apache Geronimo e o Spring Framework, Parte 1: Metodologia
de
Desenvolvimento.
Disponível
em
<http://www.ibm.com/developerworks/br/library/os-ag-springframe1/authors.html>
Acesso em: 31 Julho 2013.
Francisco, Gabriel (2013) “Utilizando o Spring Security 3”. Disponível
em<http://wehavescience.com/2013/01/19/utilizando-o-spring-security-3/ > acesso
em: 02 de Agosto 2013
Johson, R. et Al (2011) “Spring Reference”.
<http://static.springsource.org/spring/docs/3.1.x/spring-frameworkreference/htmlsingle/spring-framework-reference.html > acesso em: 01 de Agosto de
2013.
Scarioni, Carlo (2013) “Pro Spring Security”. Nova York, Estados Unidos. Disponível
em:
<http://books.google.com.br/books?id=VIqInfAXFaoC&printsec=frontcover&dq=sp
ring+security&hl=ptBR&sa=X&ei=JNUMUtb2JIfk9gSo8oDIAQ&ved=0CD8Q6AEwAg#v=onepage&q
=spring%20security&f=false> Acesso em: 14 de Agosto 2013.
Schitini, I. et Al. (2011) “Spring Framework”. <Http://kenai.com/projects/possistemasjava-jf/sources/pos-java-ufjf-2009-2011/content/02
Daves/SpringFramework.doc?rev=48> Acesso em: 30 Julho 2013.
Winch Robert, Mularien Peter (2012) “Spring Security 3.1” Disponível em
<http://www.springsource.org/spring-security> Acesso em: 13 de Agosto de 2013.
Download