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.


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 [...]