2017-02-28 95 views
3

當我想從另一臺服務器訪問遠程野蠻服務器上的EJB時,出現以下錯誤。JBOSS-LOCAL-USER:javax.security.sasl.SaslException:無法讀取服務器挑戰

Error: Authentication failed: all available authentication mechanisms failed: 
    JBOSS-LOCAL-USER: javax.security.sasl.SaslException: Failed to read server challenge [Caused by java.io.FileNotFoundException: /../wildfly/standalone-/tmp/auth/X.challenge (No such file or directory)] 
    DIGEST-MD5: Server rejected authentication 

如果我的服務器中訪問EJB,我沒有得到任何身份驗證錯誤。我使用以下來訪問服務器;

http-remoting://server1:8080 

基本上,如果我在server1上調用此方法,是沒有問題的。如果我從server2調用這個,我得到錯誤。我假設它在server1中存在的server2中查找auth文件。

我不知道如果我必須做出對EJB一些配置或者wildfly,使來自不同服務器的訪問。我確實經歷了網上提供的每一個步驟,但顯然我錯過了一些東西。

回答

1

我修復了以下更改的錯誤。

它看起來像我使用ApplicationRealm進行遠程驗證。我更新了下我的jaas領域。

<http-connector name="http-remoting-connector" connector-ref="default" security-realm="ApplicationRealm"/> 

而且,我設置SASL_POLICY_NOANONYMOUSSASL_POLICY_NOPLAINTEXTfalse在客戶端。

1

我的理解如下。 對於本地訪問,驗證不是必需的。 對於遠程訪問,該認證是必需的,所以我建議仔細檢查用戶帳戶和密碼第一。

+0

用戶/密碼正確。此外,即使它是錯誤的,它應該返回認證失敗,而不是'機制'失敗。 – likeachamp