2015-09-11 55 views
0

我正在尋找任何方法來過濾對/ login和/ register(以及可能的路徑中的任何自定義url或條目)的訪問,以防止lan以外的用戶或一個IP範圍)訪問thouse頁面。玩!限制對特定路由的訪問(如限制在Apache中)

<Limit POST PUT DELETE> 
    Order Deny,Allow 
    Deny from all 
    Allow from ip list or dns 
</Limit> 

播放服務器運行Linux(Ubuntu服務器10.04)

回答

1

兩種解決方案:

在Apache的事情是簡單地通過做

  1. 做它using custom annotation這樣你就可以添加您自己的過濾機制。
  2. 使用... Apache(或者一些更輕的HTTP服務器)作爲您的應用程序的反向代理(我最喜歡這個問題),所以你可以通過它的規則來控制訪問。 Documentation
+0

我讀到了有關您的反向代理建議,我認爲這樣可以。 安裝apache2(在我的ubuntu 14.04.2服務器上)並加載代理模塊後,我意識到我需要進一步的配置和模塊,因爲我在https上運行Play 2.3.8服務器,用於生產目的。你認爲在這裏最好的辦法是什麼?我想可能是讓apache2來處理https,然後配置一個反向代理來在Play服務器上尋址http。 – Dario

+0

是的,反向代理___was___在早期的2.x版本中只能與https一起工作,無論如何它稍後被修復(TBH,我不記得在哪個版本中確切地)反正你仍然可以使用反向服務器來處理SSL連接 – biesior

1

解決方案特別適合你(它不是我):Simple IP Access List for Play 2 with Java

它基於註釋(如biesior建議),它已準備好使用。您需要將兩個文件複製到您的項目中,然後您可以像這樣在applications.conf中配置IP列表。

restricttohostgroup { 
    groups { 
     default = ["0:0:0:0:0:0:0:1", "127.0.0.1", "10.0.0.", "192.168.0."], 
     admin = ["192.168.7."] 
    }, 
    redirect = "http://github.com" 
} 
+0

完全忘記提及我使用2.3.x和Scala,但您引用的代碼非常容易理解並以其他方式應用。謝謝 – Dario