- Como Criar Um Site, Blog – WebMaster.pt - http://www.webmaster.pt -

MySQL – Usando O Spring Security

Tweet [3]

Quem trabalha com vários bancos de dados e linguagens de programação (especialmente o Java) visa trazer às suas soluções qualidade.

Hoje uma das soluções mais usadas é o Spring Security!

Como este é nosso primeiro projeto falando sobre esta solução, estaremos falando um pouco sobre ele e dando alguns exemplos!

Porque Usar O Spring Security?

Aplicações comerciais geralmente necessitam de uma segurança a mais!

O grande erro do mercado é um empresário que está começando ou já começou a exercer suas atividades e ao invés de investir em um profissional qualificado (geralmente por causa do preço que é um pouco mais elevado), investe naquele “sobrinho” que acabou de finalizar seu curso de Programação ou Design!

Por este motivo, existem milhares de aplicações com brechas de segurança e falhas grave que facilitam o acesso de pessoas com más intenções (exemplo: crackers).

O Spring Security serve exatamente para isso; dar a segurança necessária para sua aplicação!

Bem… como grande parte do código é escrito em Java, profissionais iniciantes poderão ter um pouco de dificuldade para assimilar!

Para evitar isso, preste bastante atenção no ficheiro “applicationContext.xml” (responsável pela conexão).

Criando A Base de Dados

Antes de qualquer coisa, precisaremos criar nossa base de dados; Para isso, abra seu gerenciador de base de dados e carregue o script a seguir:

Ele deverá criar a base de dados com nome “security” e a tabela “users”.


----- Criando a Base de Dados -----
create database security;
use security;

CREATE TABLE users(

username VARCHAR(15) NOT NULL,
password VARCHAR(40),
authority VARCHAR(15),
PRIMARY KEY (username)
);

Efetuando A Conexão JDBC

Após criar a base de dados, se você ainda não tiver instalado, baixe o driver JDBC (mais conhecido como Connector J 5.1) [4].

Esta aplicação lhe dará a possibiidade de conectar o Java ao MySQL usando o ODBC.

Adicionando Bibliotecas

Um dos softwares mais práticos no desenvolvimento de Projetos em Spring Security é o SpringSource Tool Suite [5]. Para elaborar seus Projetos e usar esta ferramenta, faça seu cadastro e baixe o aplicativo.

OBS.: Ao utilizar o sistema,não se esqueça de adicionar a biblioteca do JDBC e do MySQL à biblioteca do JAR do Spring Framework (conforme imagem e informações a seguir).

  1. org.springframework.aop-3.0.2.RELEASE.jar
  2. org.springframework.asm-3.0.2.RELEASE.jar
  3. org.springframework.beans-3.0.2.RELEASE.jar
  4. org.springframework.context-3.0.2.RELEASE.jar
  5. org.springframework.core-3.0.2.RELEASE.jar
  6. org.springframework.expression-3.0.2.RELEASE.jar
  7. org.springframework.transaction-3.0.2.RELEASE.jar
  8. org.springframework.web-3.0.2.RELEASE.jar
  9. spring-security-config-3.0.2.RELEASE.jar
  10. spring-security-core-3.0.2.RELEASE.jar
  11. spring-security-taglibs-3.0.2.RELEASE.jar
  12. spring-security-web-3.0.2.RELEASE.jar
  13. commons-logging-1.1.1.jar

OBS.: Em relação ao ficheiro “commons-logging-1.1.1.jar”, como ele não faz parte do Spring Frameworks, você poderá baixar o ficheiro referente a esta biblioteca neste endereço da Apache [6].

Prático, não?

Bem… a configuração não é nosso foco principal (apesar de ser fundamental para o bom funcionamento de qualquer Projeto).

Exemplo Prático

Como nosso foco não é o de desmembrar um Projeto, vamos focar apenas o que se refere a conexão à base de dados.

Através do ficheiro a seguir, poderemos autenticar e autorizar o acesso do usuário à área segura (administração).

Não apenas isso; Ele possibilita nosso acesso às tabelas do MySQL (conforme exemplo a seguir).

applicationContext.xml:


<?xml version="1.0" encoding="UTF-8"?>

<beans:beans xmlns="http://www.springframework.org/schema/security"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:beans="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/security

http://www.springframework.org/schema/security/spring-security-3.0.xsd">

<http auto-config="true" >

<form-login login-page="/login.jsp" authentication-failure-url="/login.jsp?error=invalido"/>

<intercept-url pattern="/admin/**" access="ROLE_ADMIN" />

</http>

<authentication-manager>

<authentication-provider>

<jdbc-user-service data-source-ref="dataSource"

users-by-username-query="SELECT username, password, 'true' as enable FROM users WHERE username=?"

authorities-by-username-query="SELECT username, authority FROM users WHERE username=?"

/>

</authentication-provider>

</authentication-manager>

<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >

<beans:property name="url" value="jdbc:mysql://localhost:3306/security" />

<beans:property name="driverClassName" value="com.mysql.jdbc.Driver" />

<beans:property name="username" value="root" />

<beans:property name="password" value="123456" />

</beans:bean>

</beans:beans>

Criptografando A Senha

As senhas do ficheiro acima são inseridas manualmente (como você pode ver no ficheiro acima).

Caso seja necessário criptografá-las, você poderá adaptar seu script da seguinte forma:


<authentication-manager>
<authentication-provider>
<password-encoder hash="md5" />

</authentication-provider>
</authentication-manager>

Na hora de criar as tabelas, poderá trabalhar da seguinte maneira:


----- Inserindo Usuário -----
INSERT INTO users VALUES('usuario', MD5('senha'), 'ROLE_...')

Bem… não posso dizer que trabalhar com Spring é fácil, mas… depois que você aprende a configurá-lo e se adequa a alguns critérios, certamente não tem problemas!

Espero que esta matéria lhe ajude em algo! Em anexo envio um pequeno ficheiro de onde você poderá iniciar um Projeto e estudar mais esta excelente ferramenta.

Faça o Download do código usado neste tutorial: MySQL – Usando O Spring Security [7]

Tweet [3]
Be Sociable, Share!
  • [8]
  • [9]
  • [10]
  • [11]
  • [12]