2017-10-13 346 views
0

我想用以下方式確保personel tomcat的安全。tomcat基本身份驗證

基本上每個人(每個ip)都應該能夠訪問這個tomcat的webapps。

但是,一些IP應該能夠在沒有認證的情況下訪問tomcat(大多數)以及一些(例如10.0.0。*)應該只能通過認證來訪問這個tomcat。

我讀過很多關於如何解決這個問題。 Tomcat遠程訪問過濾器和遠程主機名不適用於我的情況,因爲我不想拒絕/允許某些IP地址的Web應用程序。

我試圖將這些行添加符合預期到context.xml中,我(本地主機)可以在不認證訪問Tomcat,但認證仍需要:

<Context antiJARLocking="true" path="/"> 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" invalidAuthenticationWhenDeny="true" allow="127\.0\.0\.1"/> 
<Valve className="org.apache.catalina.authenticator.BasicAuthenticator" /> 

所以在最後IM我的知識(也許我沒有太多:D)。

有人可以給我一個例子或解決我的問題?也許我必須編輯超過這個文件?還是我誤解了一些東西?

謝謝!

+0

據我所知,應該在Tomcat上保護Web應用程序,而不是服務器本身:http://www.avajava.com/tutorials/lessons/how-do-i-use-basic-authentication-with- tomcat.html?page = 1 –

回答

0

在tomcat中有兩種使用身份驗證的方法。 1.如果您希望每個用戶都無法訪問每個Web應用程序,則可以實施「Realm配置」。使用此配置,每當用戶訪問tomcat中部署的Web應用程序時,它都會詢問用戶名和密碼。 瞭解更多詳情請參考以下鏈接: https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html

  • 另一種情況是,如果你想要一個能夠訪問Tomcat的特定IP用戶通過遠程過濾器就可以實現這一點。 更多細節請參考以下鏈接: https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Host_Filter
  • 正如你說「Tomcat的遠程訪問過濾和遠程主機名是不是在我的情況下工作,因爲我不希望拒絕/允許Web應用程序一些IP地址「。

    在這種情況下,如果您不想爲IP綁定Web應用程序,則可以實施「Realm配置」。這就是爲什麼你可以嘗試使用用戶名和密碼的領域配置。

    如果你仍然想使用遠程過濾器,然後分享你的過程,你要了解你失敗的地方。

    +0

    嗨,我想要實現的是,每個IP都需要使用用戶名和密碼驗證,但例如我的本地ip(或本地主機127.0.0.1)不必認證自己。所以我想配置一些ips,不需要認證。這應該是整個tomcat的「路要走」。 –

    +0

    當您想要爲具有該用戶指定角色的特定用戶訪問Web應用程序時,領域配置很有用。使用此功能,我們可以在帶有角色的Web應用程序配置文件中提供具有密碼的用戶,並且可以將用戶列表與該角色綁定。之後,只有經過身份驗證的用戶纔可以訪問Web應用程序。要僅允許某些ip訪問Web應用程序,請使用拒絕和允許部分按照遠程過濾器進行操作。根據您的要求,您需要實現領域配置和遠程過濾器 – poojagupta

    +0

    例如:如果您有4 ips,並且您想爲兩個ips提供經過身份驗證的訪問,那麼爲兩個ips實施領域配置,即提及用戶名和密碼以及這兩個角色IPS。 JDBCRealm只能用於這些IPS,而其他兩個IP可以使用遠程過濾器進行配置(根據需要允許或拒絕)。 – poojagupta