2017-04-27 5 views
1

TomEE 7.0.3サーバーでejbを実行しています。 btw、これはTomee 1.7.4で動作していました。 は、私は、セットアップのtomcat-users.xmlのファイルを使用してユーザのセットTomEEでリモートからEJBを呼び出すときにAuthenticationExceptionが発生するのはなぜですか?

<tomcat-users> 
    <role rolename="admin" /> 
    <role rolename="admin-gui" /> 
    <role rolename="admin-script" /> 
    <role rolename="manager" /> 
    <role rolename="manager-gui" /> 
    <role rolename="manager-script" /> 
    <role rolename="manager-jmx" /> 
    <role rolename="manager-status" /> 
    <role rolename="tomee-admin" /> 
    <user 
     name="admin" 
     password="admin" 
     roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status,tomee-admin" /> 
    <role rolename="tomcat" /> 
    <user 
     name="tomcat" 
     password="tomcat" 
     roles="tomcat" /> 
    <user 
     name="manager" 
     password="manager" 
     roles="manager" /> 
</tomcat-users> 

私は、ユーザーの管理者」の資格情報を提供することにより、URL http://127.0.0.1/tomee/ejbにアクセスすることができる午前を持っています。 私のserver.xmlファイルには、問題は私がリモートEJBを起動しようとすると、私のJNDIのInitialContextには、次のプロパティを使用している以下のエントリ

<Resource auth="Container" description="User database that can be updated and saved" 
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" 
    pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" /> 

<Realm className="org.apache.catalina.realm.LockOutRealm"> 
     <!-- This Realm uses the UserDatabase configured in the global JNDI resources 
      under the key "UserDatabase". Any edits that are performed against this UserDatabase 
      are immediately available for use by the Realm. --> 
     <Realm className="org.apache.catalina.realm.UserDatabaseRealm" 
      resourceName="UserDatabase" /> 
    </Realm> 

を持っています。

java.naming.factory.initial=org.apache.openejb.client.RemoteInitialContextFactory 
java.naming.provider.url=http://127.0.0.1:8082/tomee/ejb 
java.naming.security.principal=admin 
java.naming.security.credentials=admin 

以下は、ejbを呼び出すためのコードです。

public static Object locateService(String serviceName) throws NamingException, IOException { 
    InputStream in = ServiceLocator.class.getClassLoader().getResourceAsStream("servicelocator.properties"); 
    Properties p = new Properties(); 
    p.load(in); 
    InitialContext ctx = new InitialContext(p); 
    return ctx.lookup("PaymentManagerRemote"); 
} 

あなたは、私が正しいユーザ名とパスワードを提供していますが、私は次の例外

Apr 27, 2017 12:39:07 PM org.apache.openejb.client.EventLogger log 
INFO: RemoteInitialContextCreated{providerUri=http://127.0.0.1:8082/tomee/ejb} 
Exception in thread "main" javax.naming.AuthenticationException: Error while communicating with server: ; nested exception is: 
    javax.naming.AuthenticationException 
    at org.apache.openejb.client.JNDIContext.authenticate(JNDIContext.java:381) 
    at org.apache.openejb.client.JNDIContext.getInitialContext(JNDIContext.java:289) 
    at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:684) 
    at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313) 
    at javax.naming.InitialContext.init(InitialContext.java:244) 
    at javax.naming.InitialContext.<init>(InitialContext.java:216) 
    at co.uk.meghdoot.core.util.ServiceLocator.locateService(ServiceLocator.java:20) 
    at co.uk.meghdoot.core.test.DeviceLocationTest.setUp(DeviceLocationTest.java:53) 
    at co.uk.meghdoot.core.test.DeviceLocationTest.main(DeviceLocationTest.java:109) 

は、誰もがこの上でいくつかの光を当てることができます取得見ることができるように?

答えて

0

tomcat-users.xmlを使用すると、server.xmlでUserDatabaseRealmをrealmとして使用していることを前提としていますが、そうでないかもしれません(ご質問には書かれていません)。これは、認証がservlet/tomcatバックボーンを介して行われることも前提としています。これは、デフォルトではtomee webapp(物理的に作成してejbdサーブレットを定義することができます。http://tomee.apache.org/ejbd-transport.html - request.login()を実行するフィルタを参照してください)

ejbdプロトコルを使用するtomeeは自動的にログインしますデフォルトではserver.xmlの最初の領域に依存するtomeeセキュリティサービスを使用しています。

+0

私はあなたが受け取ったエラーを送信したリンクを通過しました。AuthenticationExceptionはシリアライゼーションエラーではありません。ホワイトリストとブラックリスト、私はリモートejbを呼び出すことができるはずです、デフォルトブラックリストは変更なしで動作するはずですか? – Ajay

+0

jaasも正しく設定しましたか(JVMシステムのプロパティ+ JAASRealm)? –

+0

いいえ、JAASレルムを設定していません。それはtomeeの新しいバージョンの要件?いくつかのドキュメントを指摘できますか? – Ajay

関連する問題