どのように私は、EJB 3.0のサーバーにアプリケーションクライアントを認証します

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

質問

私は、全体のJ2EEアーキテクチャに非常に新しいです。誰かが私を助けてもらえますか?

私は、マシンA上のログイン、パスワードフィールドを持つSwingクライアントを持っています。

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");

私は、マシンB上JBoss5上のEJB 3.0を持っています:

@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 /ログイン-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>

私が理解したようクライアントが正しく認証されるまで、私はEJB参照を取得するべきではありません。どのように私はLoginContextは使用しており、私はまったくそれを使用しますか? /私は@EJB private MyBeanRemote ejbを使用する必要がありますすることはできますか?そして、どのように私は全部の作品を作るのですか?

アプリケーションクライアントの承認:

私は、一見些細な事を構築しようとしています。私は愚かな感じています。

どうもありがとうございます。

役に立ちましたか?

解決

私はrecentely JAASでいくつかの作業を行なったし、それは非常に難しいことができました。私が見つけたこれら2つのリソースを確認し、それらに非常に有用 http://www.jaasbook.com/ http://docs.jboss.org/jbossas/admindevel326/html/ch8。 chapter.htmlする

私はまた、 http://delicious.com/chronosMarkでマークされ、他のJAASリソースブックの負荷を持っています/ JAASは、他の2つはない場合は、それらの一つがあなたを助けますうまくいけばします。

他のヒント

チュートリアルがここにあります

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top