Estoy desarrollando una aplicación web utilizando Java EE 6 Web Profile. Deseo enviar por correo electrónico a un nuevo usuario un enlace de activación para su cuenta. ¿Cómo debo implementar esto? Estoy usando JSF2. ¿Hay alguna especificación o forma recomendada para hacer esto?Generar URL de activación en Java EE 6
Respuesta
que han trabajado en un proyecto que requiere al usuario que confirme su correo electrónico-id para activar su registro. El proceso de generación de claves era así:
Creación de clave
- crear una columna
verification_key
enusers
tabla que sostiene clave única de validación para un usuario. - Use SHA256 hash de su único nombre-usuario (id-email en este caso) con salt como contraseña.
- Convertir el hash a base64 y almacenar en
verification_key
de ese usuario. Esto será único (para propósitos prácticos, no entraría en probabilidad de colisión).
línea así, parte inferior, key = Base64(Hash256(uniqueUserName+"."+password))
......
nota al margen: Por cierto, nada restringe el uso de contraseña como la sal. Puedes simplemente crear una cadena arbitraria al vuelo como sal.
Verificación
- Como sabemos el
verification_key
es único, obtener elkey
de solicitud de parámetros y encontrar la fila coincidente. - Si lo encuentra, establezca
verification_key
comonull
(esto también reducirá las posibilidades de colisión, de haberlo) y lleve al usuario a la "página verificada con éxito". - Si no se encuentra, lleve al usuario a "ya activado/clave no encontrada/401 página".
Hola. Esta es una respuesta muy útil, muchas gracias. Quiero saber una cosa más de su implementación.Una vez que un usuario está activado, no debería tener que volver a verificar cada vez que intenta hacer algo, así que si tuviera otra, diga "pending_users", de modo que si el usuario está en la tabla de usuarios, ¿puedo suponer que está activado? – arg20
'UUID.randomUUID()' se puede usar para generar un número aleatorio –
Una URL de activación evoca una impresión de un servicio de software que procesa una solicitud de 'servicio'.
Los buenos candidatos para realizar este servicio incluyen los servlets que llevará a cabo el usuario de activación/validación y redirigir a un éxito páginas JSF
Nunca he usado realmente servlets con jsf2 antes, ya que nunca los he necesitado realmente. ¿Puedes mostrarme algún fragmento de código, por favor? – arg20
- 1. Java EE 6 y alternativas
- 2. Diferencia entre Java EE 5 y Java EE 6
- 3. Pruebas basadas en Java EE 6 API
- 4. Java EE 6 Patrones de diseño
- 5. ¿Java EE 6 es todo gratis?
- 6. Maven - Java EE 6 Web Javadocs perfil
- 7. Envío de correos electrónicos en JAVA EE 6
- 8. Inyección de Java EE 6 en la clase abstracta
- 9. Instalar Java EE 6 en OS X Lion
- 10. Cómo proteger un servicio web REST en Java EE 6
- 11. ¿Qué es un módulo EJB en Java EE 6?
- 12. Integrando Javadoc para Java EE 6 API en Eclipse
- 13. El misterio de la herencia de Java EE 6 anotaciones
- 14. ¿Los eventos CDI de Java EE 6 son transaccionales?
- 15. Diferencias entre las implementaciones de Java EE 6 CDI
- 16. Java EE 6 - El patrón Persistent Domain Objects - ¿algún éxito?
- 17. Deshabilitar Temporizador EJB (GlassFish 3.1, Java EE 6)
- 18. ¿Debo ir a Spring o seguir con Java EE 6?
- 19. Java EE 6: @Inject y <T> Instancia
- 20. ¿Qué aprender para hacer aplicaciones web Java en Java EE 6?
- 21. Eclipse EE: perspectiva de Java EE Vs perspectiva de Java
- 22. Principio de Java EE
- 23. Java EE 6: Destino inalcanzable, el identificador 'helloBean' resuelto a nulo
- 24. ¿Cómo modelar en Java EE?
- 25. log4j postgres en Java EE
- 26. roles dinámicos en un servidor Java EE
- 27. java nio Selector de activación
- 28. Iniciando Java EE MVC
- 29. Eclipse Java EE plugin
- 30. Desarrollo web RESTful con Java EE 6: ¿cuáles son las opciones?
¿Desea crear la "clave" que se debe enviar con la URL de activación o desea generar un URL con marca de libro en JSF? – Nishant
exactamente, el usuario se registra, y una url con una clave se envía a su correo electrónico como: haga clic en http://misitio.com/activate?key=dsafadsfwe para activar su cuenta. – arg20
Puede ser si pudiera acceder a la url de jsf y obtener el parámetro clave o algo – arg20