2017-06-15 96 views
0

我有一個使用j_security_check和ldap進行身份驗證的java項目。現在我的僱主希望使用提供的web服務將其更改爲認證。他們給我的實際上是一個鏈接,如下所示 「http://11.111.111.111/ADManager/ADlogin.asmx」 我是一個總的新手到java和webservice.All我知道的是,如果我們提供一些數據到web服務,它會給出響應。我的疑問是如何在java中使用web服務登錄?

  1. 是否有可能創建一個登錄消費他們提供的鏈接?
  2. 我應該問他們更多的信息嗎?
  3. 是否可以替換已在我的java項目中配置的j_security_check和ldap?

P.S:分配給我這個任務的人似乎也沒有多少知識。

回答

0

簡短的答案是你可以。

你需要做到以下幾點:

每個web資源被(servlet的)過濾器的保護。該過濾器檢查每個傳入請求並驗證需要位於http標頭上的令牌。如果令牌有效,則會提供請求。如果令牌無效,則過濾器將發回未授權的HTTP 401。然後重定向到裏脊頁面。

登錄與其他服務:

1)創建用戶名/密碼字段的自定義登錄頁面。

2)創建一個休息Web服務,接收用戶名/密碼。它將根據外部訪問管理基礎設施(如OpenAM)檢查憑證。

3)首先,調用auth(username,password)rest api來獲得auth令牌。如果給定的憑證沒問題,那麼只需使用HTTP 200響應代碼將身份驗證cookie發送回客戶端即可。

4)然後,您可以調用受保護的休息apis。您需要每次都發送auth cookie與您的請求。

5)Servlet過濾器(或類似的)檢查每個傳入請求並驗證令牌。如果令牌是有效的,那麼請求會轉到其餘方法,否則您需要生成http 401/403響應。

我建議你不要編寫自己的認證層,請使用現有的認證層,例如OpenAM。

forum topic解釋你的一切。

+0

正如你所注意到的,我是一個全新的人,所以對於我的愚蠢懷疑,請原諒我。在第2步中,你說我必須創建一個Web服務,但在這種情況下,我已經有一個Web服務,他們給我的Web服務的鏈接是「** http://11.111.111.111/ADManager/ADlogin。 asmx **「。我應該只是將我的用戶名和密碼傳遞給上述鏈接?如果是,如何?我是否必須向僱主詢問有關Web服務如何接受我提供的細節以及如何響應的更多細節? –

+0

我對WS的工作方式一無所知,但通常的驗證服務接收憑證(用戶名/密碼),並且在成功完成驗證後,它會使用http標頭中的令牌發送一個http重定向到原始請求的頁面。該令牌將被客戶端的Web瀏覽器添加到每個請求中,並且過濾器會在允許用戶查看請求的Web資源之前對其進行驗證。它的標記是無效的如果授權錯誤,HTTP 401將被髮送回客戶端瀏覽器或403。 – zappee