2012-07-30 24 views
7

我已成功在web.xml(java-webcontainer)中設置了FORM-authentication。web.xml,同時使用表單和基本身份驗證

使用FORM-Authentication時,我沒有找到一種方法在我的客戶端的restful-uri的get-request內發送用戶名/密碼。所以我必須使用BASIC-Authentication才能使用restful-uri。

所以我有這樣的疑問:

我如何設置都基於表單的認證和基本認證? 只能對restful-uri啓用基本身份驗證。

+0

您仍然有興趣在回答這個問題? – Olaf 2012-08-08 14:23:02

+0

是的!我一直在假期:) – nimo23 2012-08-27 08:50:10

回答

6

有一段時間沒有迴應,所以我自己做了一個快速的servlet複習。 Servlet規範確實每個Web應用程序只允許有一個<login-config>元素,因此無法爲REST API使用基於BASIC認證的入口點,另一種使用基於FORM的UI認證。唯一的選擇是將它們構建爲兩個可獨立部署的應用程序。爲避免代碼重複,只需讓UI應用程序以與第三方客戶端相同的方式與REST API對話就可能是一個好主意。

+0

我希望,未來的servlet規範將有可能。也許我們應該提出功能請求? – nimo23 2012-08-27 08:52:23

7

,我也面臨着類似的問題,我意識到,如果你正在使用Wildfly那麼它可能使用的web.xml配置多個機制: -

<auth-method>BASIC?silent=true,FORM</auth-method> 

使用這種無聲的基本認證將首先嚐試,這是基本身份驗證,只有授權標頭存在纔會生效。如果不存在這樣的頭部,則將使用表單認證。

也許爲時已晚了答覆,但我剛剛更新了此萬一有人發現這個有用的:P

+1

非常感謝。這有很大的幫助。節省大量時間。 – 2017-03-08 09:01:24