2012-07-05 79 views
0

大家好,我的新問題如下web應用程序:我有Tomcat上對6.0.x運行的Web應用程序,這是後面的apache httpd的反向代理,還有其他它後面的機器應該與某個Web服務通信(http://bla.com/受限制的/stuff/...),而用戶(從反向代理的互聯網端連接)和其他機器不應該能夠調用那些方法,最好甚至不知道它們存在。限制訪問某些網址,在Tomcat上運行(對6.0.x)

  1. 嗯,我知道我可以使用RemoteAddrFilter和過濾IP,雖然這是惡搞,能夠也可能是「足夠接近」但不幸的是我堅持使用Tomcat的版本6。
  2. 如果我有完全的自由我可以設置一個不同的端口上這個服務,然後只用iptables來限制它,但不幸的是它必須是Tomcat的的相同實例和相同的Web應用程序,我不熟悉的方式來限制連接到Web應用程序中的某些區域。
  3. 的應用程序管理它自己的安全系統,它不能被用於認證的「調用機器」該說做一些安全方面的限制是好的,但specification在這裏說,一個只能有一個login-config元素因此,即使「歷史」的原因如果我爲受限制的URL編寫了不同的約束條件,我將無法通過要求用戶證書(例如識別調用機器)來阻止它,因爲我已經有了一個login-config。

這更多的是「如何做到最好」的問題,而不是「我不知道該怎麼做」,因爲有很多方法可以設置,但我們不想滑現在到了黑暗的一面嗎?

我必須說我確實試圖研究這個問題,但我還沒有找到任何明顯的解決方案,但是如果我錯過了優雅明顯的東西,我會更樂意聽到它(非常歡迎非微不足道的解決方案:)),所以謝謝你的任何想法。

回答

0

是否有可能需要通過http://example.internal:8080/restricted直接對話tomcat的服務,而不是使用反向代理來調用「限制」的服務,這樣做的機器?如果是這樣,那麼最簡單的方法就是設置代理,使其不會通過受限制的URI,這將使外部呼叫者無法訪問它們。

+0

比方說,我沒有對反向代理服務器的完全控制,我真的不開心「外包」安全的其他應用程序(如iptables的想法),更遑論其他服務器。這個建議確實出現了,但是我們再次不喜歡它......謝謝:) – Scis

+0

在這種情況下,RemoteAddrValve方法可能是您可以做的最好的方法(請注意,您可以在Tomcat 6中使用這個_is_以及7) –

+0

http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Remote_Address_Filter是在Tomcat的6 –