2012-05-15 24 views
6

Mới đối với Java EE6 và tôi đang cố gắng thiết lập JDBCRealm. Nhiều ví dụ đề xuất tạo các bảng chứa thông tin người dùng/nhóm bằng tay trong SQL.JDBCRealm với JPA

Có cách nào "JPA" tiêu chuẩn hơn để làm điều đó không? Các bảng Glassfish hy vọng không phù hợp với loại cấu trúc bảng mà bạn sẽ kết thúc nếu bạn sử dụng ví dụ: một bản đồ OneToMany (đó là những gì tôi đã hy vọng tôi có thể sử dụng).

Tôi đọc Glassfish vẫn sử dụng JDBC để hoàn thành JDBCRealm, điều này sẽ giải thích lý do tại sao. Và tôi đã xem qua blog này gợi ý một cách để làm điều đó với JPA.

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

Nhưng có một cách 'chính thức' để làm điều đó với JPA? Tôi muốn đảm bảo tôi tuân theo phương pháp hay nhất để đảm bảo tôi có một ứng dụng an toàn.

Cảm ơn

+0

Bất kể giải pháp tối thượng của bạn là gì, bạn có lẽ nên tránh JDBCRealm trong một hệ thống sản xuất. Nếu nó đã không thay đổi kể từ khi ngã ba từ Apache Tomcat, sau đó nó vẫn duy nhất-ren và do đó tất cả các thông tin xác thực kiểm tra, vv sẽ được đăng. Ít nhất hãy sử dụng DataSourceRealm và cho phép Glassfish sử dụng một hồ bơi kết nối. –

+0

Cảm ơn Christopher. Nếu đó là cách tốt nhất hiện tại để làm auth thì tôi sẽ đi với đề xuất của bạn. Đã không nghe nói về DataSourceRealm. hãy học lại Java để chắc chắn rằng tôi đang làm mọi thứ đúng cách (như cập nhật nhất có thể). – Richard

+0

Tôi thấy DataSourceRealm trên trang web JBoss, nhưng không nhiều về nó trên Glassfish một. Đây có phải là cách tốt nhất để xác thực dựa trên JDBC không? – Richard

Trả lời

5

Một vài tháng trước, tôi muốn tạo ra lĩnh vực JDBC của mình với glassfish và tôi cũng có nhiều nghi ngờ. Tôi sẽ cố gắng giải thích cho bạn nhiều hơn hoặc ít hơn như thế nào tôi đã làm nó bằng cách sử dụng JPA.

Nhiều người trong số các ví dụ đề nghị làm các bảng mà giữ người dùng/nhóm thông tin bằng tay trong SQL

tôi không đồng ý, nếu bạn đang sử dụng JPA cho các nhiệm vụ khác liên quan đến kiên trì lý do tại sao bạn sẽ làm cho một ngoại lệ khi liên quan đến an ninh. Vì vậy, JPA là một ý tưởng tốt. Sao chép/dán một đoạn SQL trong bảng điều khiển DB của bạn rất dễ dàng nhưng tốt hơn nếu bạn có các thực thể sẽ tự động sẽ luôn tạo các bảng đó cho bạn khi triển khai ứng dụng của bạn.

Hướng dẫn bạn đang theo dõi là tốt, tôi nghĩ rằng không có suy nghĩ như một phương pháp hay nhất.

Tôi sẽ cung cấp cho bạn một số tài nguyên mà tôi nghĩ sẽ giúp bạn tạo ra lĩnh vực JDBC. Có lẽ bạn quan tâm đến một cái gì đó đơn giản hơn một chút, chỉ để làm ấm lên, trong trường hợp đó có một cái nhìn vào bài đăng này:

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

Nó nói về an ninh dựa VAI TRÒ trong glassfish, tôi nghĩ rằng nó có thể cung cấp cho bạn một số lời khuyên.

Nếu bạn muốn biết làm thế nào để tạo ra các lĩnh vực JDBC với JPA, hãy làm theo câu hỏi này tôi đã thực hiện thời gian trước đây, cuối cùng bạn sẽ tìm ra giải pháp:

Glassfish 3 security - Form based authentication using a JDBC Realm

Nếu bạn dán một số mã chúng tôi có thể giúp bạn gặp khó khăn khi hét lên trong trường hợp bạn gặp khó khăn.

+0

Xin chào sfrj, cảm ơn vì điều này. Liên kết thứ hai cung cấp rất nhiều thông tin thực sự hữu ích và tôi có thể sẽ nhắc đến nó rất nhiều! Trong trường hợp của tôi, tôi đã có công việc FlexibleJDBCRealm và nó có vẻ thực sự tốt. Danh sách gửi thư rất yên tĩnh nên tôi không biết chắc nó sử dụng bao nhiêu, nhưng cho đến nay tôi nghĩ đó là một lĩnh vực được viết rất tốt. Tôi mới làm quen với điều này nên bài đăng của bạn sẽ thực sự hữu ích đối với tôi. Cảm ơn nhiều! – Richard

+0

@Richard Bạn được chào đón – sfrj

Các vấn đề liên quan