2012-05-15 3 views
6

Новое в Java EE6, и я пытаюсь настроить JDBCRealm. Многие из примеров предлагают сделать таблицы, которые содержат информацию о пользователе/​​группе вручную в SQL.JDBCRealm с JPA

Есть ли более стандартный способ «JPA»? Таблицы Glassfish, как ожидается, не соответствуют типам табличных структур, в которые вы попадете, если вы используете, например, отображение OneToMany (это то, что я надеялся использовать).

Я читал, что Glassfish по-прежнему использует JDBC для выполнения JDBCRealm, что объясняет, почему. И я наткнулся на этот блог, который предлагает способ сделать это с JPA.

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

Но есть ли 'официальный' способ сделать это с JPA? Я хочу убедиться, что я придерживаюсь лучших практик, чтобы убедиться, что у меня есть безопасное приложение.

Благодаря

+0

Независимо от вашего окончательного решения, вы, вероятно, должны избегать JDBCRealm в производственной системе. Если он не изменился с вилки из Apache Tomcat, то он все еще однопоточный, и поэтому все проверки полномочий и т. Д. Будут сериализованы. По крайней мере, используйте DataSourceRealm и разрешите Glassfish использовать пул соединений. –

+0

Спасибо Кристофер. Если это лучший способ сделать auth, тогда я пойду с вашим предложением. Не слышал о DataSourceRealm. Любое переучивание Java, поэтому хочу, чтобы я делал все правильно (насколько это возможно, насколько это возможно). – Richard

+0

Я вижу DataSourceRealm на веб-сайте JBoss, но не так много об этом на Glassfish. Является ли это лучшим способом для аутентификации на основе JDBC? – Richard

ответ

5

Несколько месяцев назад я хотел создать свой JDBC Realm с GlassFish и я также было много сомнений. Я попытаюсь объяснить вам более или менее, как я это сделал, используя JPA.

Многих примеров предлагают сделать таблицы, которые держат пользователь/группе информации вручную в SQL

Я не согласен, если вы используете JPA для выполнения других задач, связанных с упорством, почему бы вам сделать исключение в отношении безопасности. Поэтому JPA - хорошая идея. Копировать/вставлять кусок SQL в консоль БД легко, но лучше, если у вас есть объекты, которые будут автоматически создавать эти таблицы для вас при развертывании вашего приложения.

Учебное пособие, за которым вы следите, прекрасно, я думаю, что нет такого мнения, как лучшая практика.

Я дам вам некоторые ресурсы, которые, я думаю, помогут вам создать область JDBC. Может быть, вы заинтересованы в чем-то немного более просто, чтобы согреться, в этом случае посмотреть на этот пост:

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

Это говорит о безопасности на основе роли в GlassFish, я думаю, что это может дать вы несколько советов.

Если вы хотите знать, как создать JDBC область с JPA, следовать этот вопрос я сделал давно, в конце концов вы найдете решение:

Glassfish 3 security - Form based authentication using a JDBC Realm

Если вставить код мы может помочь вам выкрикнуть, если вы застрянете.

+0

Привет, sfrj, спасибо. Вторая ссылка дает много полезной информации, и я, вероятно, буду говорить об этом довольно много! В моем случае у меня работает FlexibleJDBCRealm, и это кажется действительно хорошим. Списки рассылки очень тихие, поэтому я не уверен, сколько пользы он получает, но пока я думаю, что это очень хорошо написанная область. Я новичок в этом, поэтому ваш пост будет действительно полезен для меня. Большое спасибо! – Richard

+0

@Richard Добро пожаловать – sfrj