كيف يمكنني مصادقة عميل طلب إلى المنظمة بتبني خادم 3.0

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

سؤال

وأنا جديدة جدا من العمارة J2EE بأكملها. يمكن لأي شخص أن يساعدني بها؟

ولدي العميل سوينغ مع الدخول، وحقول كلمة المرور على الجهاز A.

Properties p = new Properties();
p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
p.put(Context.PROVIDER_URL, "jnp://localhost:1099/");

InitialContext ctx = new InitialContext(p);
ejb = (MyBeanRemote) ctx.lookup("DemoServer/MyBean/remote");

ولدي EJB 3.0 على JBoss5 على الجهاز B:

@Stateful
@DeclareRoles({"editor", "viewer"})
public class MyBean implements MyBeanRemote, Serializable  {

    @RolesAllowed({"editor"})
    public boolean modify() throws Exception {
            if(!ctx.isCallerInRole("editor")) throw new SecurityException("Can't modify");
            return true;
    }

    @RolesAllowed({"viewer","editor"})
    public boolean view() throws Exception {
            if(!ctx.isCallerInRole("viewer")) throw new SecurityException("Can't view");
            return true;
    }
}

ولدي DB مع المستخدمين والأدوار على الخادم (أسيوط / الدخول-conf.xml):

<application-policy name="jboss-secure">
  <authentication>
    <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
        <module-option name="unauthenticatedIdentity">guest</module-option>
        <module-option name="dsJndiName">java:/MyDerby</module-option>
        <module-option name="principalsQuery">SELECT Password FROM Users WHERE Username=?</module-option>
        <module-option name="rolesQuery">SELECT Role, 'Roles' FROM Users WHERE Username=?</module-option>
    </login-module>
  </authentication>
</application-policy>

وMETA-INF / jboss.xml:

<jboss>
    <security-domain>java:/jaas/jboss-secure</security-domain>
</jboss>

وكما فهمت، لا ينبغي لي أن الحصول على إشارة المنظمة بتبني حتى يتم مصادقة العميل بشكل صحيح. كيف يمكنني استخدام LoginContext، ويمكنني استخدامه على الإطلاق؟ يمكن / يجب علي أن أستخدم @EJB private MyBeanRemote ejb؟ وكيف يمكنني جعل عمل كل شيء؟

وأنا مجرد محاولة لبناء شيء على ما يبدو تافها: إذن العميل التطبيق. أشعر غبي.

وشكرا جزيلا لكم.

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

المحلول

وفعلت بعض العمل مع JAAS recentely وجدت أنه يمكن أن تكون خادعة تماما. تحقق من هذه الموارد اثنين وجدت لها http://www.jaasbook.com/ و <ل أ href = "http://docs.jboss.org/jbossas/admindevel326/html/ch8.chapter.html" يختلط = "نوفولو noreferrer"> http://docs.jboss.org/jbossas/admindevel326/html/ch8. chapter.html

ولقد حصلت أيضا على شحنة من كتاب موارد JAAS الآخرين ملحوظ في http://delicious.com/chronosMark / JAAS أمل واحد منهم سوف تساعدك على الخروج إذا كان الاثنان الآخران لا.

نصائح أخرى

وهناك برنامج تعليمي هنا

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