簡體   English   中英

保護GlassFish中的REST Web服務

[英]Securing REST web service in GlassFish

大家。 我在保護REST Web服務時遇到問題。 它是Java EE Web應用程序的一部分。 為了保護頁面安全,我使用了login-config標記並設置了“ FORM”身份驗證。 現在,我不知道如何保護Web服務,因為“ FORM”不適合它,並且我不能為應用程序提供兩個login-config標簽。 我考慮過拆分為2個應用程序,但不認為這是個好主意。 有什么建議么?

這包含有關如何使用NetBeans創建安全的Web服務的信息: http : //netbeans.org/kb/docs/websvc/wsit.html

許多Web服務提供商使用api密鑰來驗證對服務的訪問。 您可能需要考慮為您的服務做類似的事情。

REST API具有一個單獨的子路徑是很常見的-這樣,您可以使用jersey OAuth過濾器或其他方式僅針對應用程序特定的URL和REST API實施身份驗證所對應的URI指定auth約束。

如果您的應用全部使用澤西島編寫,並且您希望為REST客戶端和瀏覽器公開完全相同的URI(並僅根據請求的媒體類型進行區分),則可以使用“登錄” URL(用於顯示登錄頁面),只有這樣您才能使用FORM身份驗證進行保護。 然后再次添加除非請求中沒有OAuth標頭否則不會啟動的Jersey OAuth過濾器(或其他auth過濾器),以及另一個用於檢查ContainerRequest.getUserPrincipal()是否為null的過濾器。 如果為null,則可以返回Response.seeOther(UriBuilder.fromPath("/login").queryParam("redirect", request.getAbsolutePath()).build()).build() -將重定向到登錄名(對於oauth,此操作將不會啟動,因為oauth請求將成功執行,否則前一個過濾器將失敗並返回Unauthorized或Bad Request狀態代碼)。 成功登錄后,您可以在登錄資源中使用redirect query參數重定向回原始頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM