مصادقة الأسماك الزجاجية: هل يمكن أن يكون العالم قاعدة بيانات خارجية

StackOverflow https://stackoverflow.com/questions/2185712

سؤال

أنا جديد تمامًا في تسجيل الدخول والمصادقة. أنا أعمل على تطبيق ويب Glassfish الذي يجب أن يقدم محتوى عامًا لأي زائر ، وبعض المحتوى الإضافي للمستخدمين المسجلين قاموا بتسجيل الدخول باستخدام اسم المستخدم وكلمة المرور.

لقد قرأت البرنامج التعليمي Java EE حول الأمان ، واعتقدت أن مصادقة HTTP المستندة إلى النموذج ستلبي احتياجاتي (يُطلب من الزائر بيانات اعتماد عند محاولة تصفح محتوى مضمون).

ومع ذلك ، كان تخميني الأول هو أنه ينبغي تخزين المستخدمين المسجلين في قاعدة بيانات خارجية إلى جانب كلمة مرور التجزئة والمملحة. يبدو أن الأمان لتطبيق الويب في Glassfish يعتمد على العالم المملوء يدويًا مباشرة على خادم التطبيق (تحديد المستخدم والمجموعات ورسم الخرائط لها في الأدوار في التطبيق).

هل أسأت فهم ما هو الأمن على الأسماك الزجاجية؟ أو هل يمكن أن يكون عالم قاعدة بيانات خارجية خارج خادم التطبيق؟ أي رابط إلى الوثائق حول هذا الموضوع سيكون مفيدًا بالنسبة لي.

شكرا لكم مقدما

لاذع

هل كانت مفيدة؟

المحلول

هذا ممكن بالفعل. في Glassfish ، انتقل إلى التكوين/الأمان/العوالم ، وقم بإنشاء عالم جديد وقم بتعيين classname على com.sun.enterprise.security.auth.realm.jdbc.jdbcrealm. أشر إلى مورد JDBC المرتبط بقاعدة البيانات ، وإشارة إلى الجدول والأعمدة التي يتم فيها تخزين اسم المستخدم/كلمة المرور. يجب أن تحتوي قاعدة البيانات أيضًا على جدول للمجموعات التي يجب أن ينتمي المستخدم إلى الوصول إليها. تشير إلى تلك أيضا.

في التطبيق ، قم بإعداد web.xml و sun-web.xml باسم المجال كالمعتاد.

نصائح أخرى

فيما يلي مقال عن عالم JDBC في Glassfish مع سيناريو وصفته: http://java-cookbook.blogspot.com/2011/02/jdbc-security-realm-with-glassfish-and.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top