2012-05-15 14 views
6

Nuevo en Java EE6 y estoy tratando de configurar un JDBCRealm. Muchos de los ejemplos sugieren hacer las tablas que contienen información de usuario/grupo a mano en SQL.JDBCRealm con JPA

¿Hay una manera más estándar de "JPA" de hacerlo? Las tablas que espera Glassfish no encajan con el tipo de estructuras de tabla con las que terminará si utiliza, p. un mapeo de OneToMany (que es lo que esperaba poder usar).

Leo Glassfish todavía usa JDBC para lograr el JDBCRealm, lo que explicaría por qué. Y me encontré con este blog que sugiere una forma de hacerlo con JPA.

http://www.codeproject.com/Articles/238779/J2EE-JDBC-based-authentication-with-JPA-Entities-i

Pero hay una manera 'oficial' de hacerlo con la APP? Quiero asegurarme de seguir las mejores prácticas para asegurarme de tener una aplicación segura.

Gracias

+0

Independientemente de su solución definitiva, probablemente debería evitar JDBCRealm en un sistema de producción. Si no ha cambiado desde la horquilla de Apache Tomcat, sigue siendo de un solo hilo y, por lo tanto, todas las comprobaciones de credenciales, etc. se serializarán. Al menos use DataSourceRealm y permita que Glassfish use un grupo de conexiones. –

+0

Gracias Christopher. Si esa es la mejor manera actual de hacer auth, iré con su sugerencia. No había oído hablar de DataSourceRealm. un poco reaprendiendo Java, así que quiero asegurarme de estar haciendo todo correctamente (lo más actualizado posible). – Richard

+0

Veo DataSourceRealm en el sitio web de JBoss, pero no mucho sobre él en Glassfish. ¿Es el mejor camino a seguir para la autenticación basada en JDBC? – Richard

Respuesta

5

Hace unos meses que quería crear mi reino JDBC con GlassFish y yo también tenía un montón de dudas. Trataré de explicarte más o menos cómo lo hice usando JPA.

Muchos de los ejemplos sugieren hacer las tablas que contienen usuario/grupo información a mano en SQL

no estoy de acuerdo, si está utilizando JPA para otras tareas relacionadas con la persistencia ¿por qué hacer una excepción cuando se trata de seguridad. Entonces JPA es una buena idea. Copiar/pegar un trozo de SQL en su consola de bases de datos es fácil pero mejor si tiene entidades que siempre crearán automáticamente esas tablas cuando implemente su aplicación.

El tutorial que está siguiendo está bien, creo que no hay tal como una mejor práctica.

Te daré algunos recursos que creo que te ayudarán a crear el reino JDBC. Quizás esté interesado en algo un poco más simple, sólo para calentar, en ese caso, echar un vistazo a este post:

http://javing.blogspot.in/2012/05/here-in-this-video-you-can-see-how-i.html

Habla de seguridad basada papel en glassfish, creo que puede dar algunos consejos

Si usted quiere saber cómo crear el reino de JDBC con JPA, siga esta pregunta que hice hace tiempo, al final se encuentra la solución:

Glassfish 3 security - Form based authentication using a JDBC Realm

Si pega algo de código que podría ayudarlo a resolver los problemas en caso de que se quede atascado.

+0

Hola sfrj, gracias por esto. ¡El segundo enlace proporciona MUCHA información realmente útil y probablemente me referiré a ella bastante! En mi caso, tengo FlexibleJDBCRealm funcionando y parece realmente bueno. Las listas de correo son muy silenciosas, así que no estoy seguro de cuánto se está usando, pero hasta ahora creo que es un dominio muy bien escrito. Soy nuevo en esto, así que su publicación será realmente útil para mí. ¡Muchas gracias! – Richard

+0

@Richard De nada – sfrj