• Autor: admin
  • Publicado: Nov 29th, 2008
  • Categoria: Articulos
  • Comentarios: 1

Encriptación de Contraseñas con Jasypt y Spring Security 2

Continuando el artículo anterior, vamos hacer uso de una libreria muy poderosa de la familia Apache, se llama, Jasypt y la puedes encontrar aqui. Esta herramienta que se integra perfectamente con Spring Security 2.0 y con Hibernate, pero en este ejemplo, no la voy a integrar aun con Hibernate.

Puedes encriptar contraseñas con MD5, SHA-1 y personalizar tu encriptación, solo voy a tocar los temas mas sencillos.

Para iniciar un ejemplo de código para cada una de estas dos formas de encriptar una contraseña, claro, puede encriptar lo que necesites, en mi caso, para hacerlo compatible con Spring, el password.

 
import org.jasypt.util.digest.Digester;
import org.jasypt.util.password.BasicPasswordEncryptor;
import org.jasypt.util.password.ConfigurablePasswordEncryptor;
import org.jasypt.util.password.StrongPasswordEncryptor;
 
//Para una encriptacion sencilla en MD5
BasicPasswordEncryptor passwordEncryptor = new BasicPasswordEncryptor();
String encryptedPassword = passwordEncryptor.encryptPassword("jotadeveloper");
 
//Para una encriptacion mas fuerte en SHA-1
StrongPasswordEncryptor passwordEncryptor2 = new StrongPasswordEncryptor();
String encryptedPassword2 = passwordEncryptor2.encryptPassword("jotadeveloper");
 
//Para una encriptación Personalizada
//SHA1
ConfigurablePasswordEncryptor passwordEncryptor3 = new ConfigurablePasswordEncryptor();
passwordEncryptor3.setAlgorithm("SHA-1");
passwordEncryptor3.setPlainDigest(true);
String encryptedPassword3 = passwordEncryptor3.encryptPassword("jotadeveloper");
//MD5
ConfigurablePasswordEncryptor passwordEncryptor4 = new ConfigurablePasswordEncryptor();
passwordEncryptor4.setAlgorithm("MD5");
passwordEncryptor4.setPlainDigest(true);
String encryptedPassword4 = passwordEncryptor4.encryptPassword("jotadeveloper");

Una vez has creado tu clase con al encriptación deseada, es tan sencillo como usar las funciones de arriba y guardarlo donde quieras y como quieras.
Ahora la configuración en tu security.xml de Spring Security 2.0

//En mi caso, seleccione StrongPasswordEncryptor porque voy a usar encriptacion SHA-1
<beans:bean id="jasyptPasswordEncryptor"
		class="org.jasypt.util.password.StrongPasswordEncryptor" />
 
//
<beans:bean id="passwordEncoder" class="org.jasypt.spring.security2.PasswordEncoder">
		<beans:property name="passwordEncryptor">
			<beans:ref bean="jasyptPasswordEncryptor" />
		</beans:property>
	</beans:bean>
 
<authentication-provider user-service-ref="userService">
		<password-encoder ref="passwordEncoder">
		</password-encoder>

El código anterior, lo agregas al mismo codigo del articulo anterior y listo.

Tags: , , , , ,

One Response to “Encriptación de Contraseñas con Jasypt y Spring Security 2”


  1. Gaea – Redes Sociales Verticales | Comunidades Online | Web 2.0 | Agile Development | E-Salud | Software Libre » Blog Archive » Jasypt: Java Simplified Encryption
    on Nov 23rd, 2009
    @ 4:16

    [...] – Integración con Jasypt y Spring Security [...]

Dejar una Respuesta

Spam Protection by WP-SpamFree

© 2009 Jotadeveloper Blog. Nuestros contenidos están bajo licencia Creative Commons mientras no se indique lo contrario,
y pueden reproducirse libremente sin más que mencionar la fuente ("JotaDeveloper") y la URL concreta del artículo original. .

This blog is powered by Wordpress and JotaDeveloperTheme.