我有幾個部署到JBoss 7的Web應用程序(.war文件)。所有這些Web應用程序都是具有一個條目(身份驗證)點的較大應用程序的一部分。這些webapps通過HTTP服務(跨域調用)互相使用功能。服務器端服務調用獲取連接拒絕
說我係統上有5個用戶。但是,無論出於何種原因,我重新啓動了服務器(JBoss)。用戶在重啓之前或之後都不會退出系統。服務器重新啓動後,跨域服務器端服務會導致「連接被拒絕」錯誤。
此時可以通過瀏覽器將URL粘貼到地址中來調用服務。這每次都不會有錯誤。
如果5個用戶中的1個(只有一個)重新進行身份驗證,則服務器端服務調用將再次開始爲所有5個用戶開始工作。所有5個都不需要重新認證。我們的應用程序是SSO,所以沒有太多驗證碼。我們只是調用一些NTLM調用來進行身份驗證。
我們不會將任何憑據傳遞給服務。任何經過身份驗證的人都有權調用這些服務。
應該注意的是,系統的所有其他功能都無需用戶重新進行身份驗證(客戶端AJAX;數據庫查詢/更新)。它只是通過HTTP調用服務器端的服務調用,不起作用。
根據其他帖子和文檔,我發現「連接被拒絕」是因爲1)服務沒有運行或2)存在防火牆問題。
在我的情況下,這些都不是真的。如上所述,可以從瀏覽器調用服務。我可以通過在我的Windows計算機上運行本地JBoss來重新創建它。我只需重新啓動它就會發生錯誤。沒有涉及防火牆。
我認爲這可能是一個CORS問題,但看起來CORS與源自瀏覽器的請求(例如Javascript/AJAX)有關,而這不是這種情況。所有服務請求都來自服務器。
我對網絡或安全方面沒有太多經驗,所以我對這裏發生的事情感到不知所措。身份驗證似乎與或正在導致問題,但我不明白爲什麼或如何解決它。
任何建議將受到歡迎。
- 的JBoss 7
- 的Java 6
- Spring MVC的4.0.6
- Windows 7的
感謝。
感謝您的建議。然而,這個問題變成了我們的應用程序非常深奧的東西,我們通過糾正一些代碼來解決這個問題。 –