سؤال

لقد حصلت على وحدة تسجيل دخول مخصصة في أذن على JBoss. يحتوي Meta-INF للأذن على jboss-app.xml الذي يشير إلى خدمة تسجيل الدخول.

يستخدم jboss.xml في meta-inf الأذن نفس المجال الأمان كما هو محدد لوحدة تسجيل الدخول في تسجيل الدخول config.xml.

عند إجراء مكالمة إلى EJB داخل تلك الأذن ، لا أرى وحدة تسجيل الدخول المخصصة التي تعمل على تشغيل تسجيل الدخول وارتكاب طرق كما رأيتها عندما قمت بتطبيق هذا في مكان آخر في الماضي.

لديّ TRACE Log4J Setup لـ org.jboss.security وأرى لا شيئ على إجراء مكالمة EJB. مكالمة EJB ناجحة على الرغم من أنني لست مصادقة.

لا يمكنني معرفة سبب عدم استدعاء وحدة تسجيل الدخول الخاصة بي أو كيفية تصحيح عملية قرار JAAS. أيه أفكار؟ شكرًا.

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

المحلول 2

لقد وجدت المشكلة ، مع بعض المساعدة.

كان jboss.xml الخاص بي في مجلد meta-inf للأذن ، كان ينبغي أن يكون في مجلد meta-inf لجرة EJB.

من الواضح أن ملف JBOSS في مجلد Meta-Inf الخاص بـ Ear كان Jboss-app.xml ، والذي أعتقد أنه سيكون دليلًا على تذكره في المرة القادمة.

نصائح أخرى

ما قمت به حتى الآن هو إنشاء وحدة تسجيل الدخول ، الآن تحتاج إلى إخبار EJB الخاص بك لاستخدامه:

import javax.annotation.security.RolesAllowed;
import javax.ejb.Stateless;

import org.jboss.ejb3.annotation.SecurityDomain;


@Stateless
@SecurityDomain("mySecurityDomain")
@RolesAllowed({"guestRole", "userRole", "adminRole"})
public class SecureBean implements Secure {
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top