documentation here描述瞭如何使用IP過濾器來保護Form Runner。我跟着這些指示如下:如何使用IP過濾器保護Orbeon Form Runner?
- 看跌urlrewrite-3.2.0.jar在Orbeon窗體WEB-INF/lib文件夾
- 配置Orbeon過濾器窗體WEB-INF/web.xml中
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
- 把
urlrewrite.xml
配置在Orbeon WEB-INF文件夾
<?xml version="1.0" encoding="utf-8"?>
<urlrewrite>
<rule>
<condition type="remote-addr" operator="notequal">0:0:0:0:0:0:0:1%0</condition>
<condition type="remote-addr" operator="notequal">127.0.0.1</condition>
<set type="status">403</set>
<to type="temporary-redirect" last="true">/unauthorized</to>
</rule>
</urlrewrite>
如果我訪問這個URL從本地主機它工作正常預期:
http://myserver.mydomain.com/orbeon/fr/
如果我從其他地方訪問它,我不能夠訪問表亞軍,這是很好的,但重定向不不能正常工作。我最終被重定向到以下網址不包括應用程序上下文,所以我得到一個404
http://myserver.mydomain.com/unauthorized
我試過temporary-redirect
的值更改爲/%{context-path}/unauthorized
但後來我重定向到。我也嘗試%{context-path}/unauthorized
,但後來我得到了「太多重定向」錯誤。
任何想法如何解決這個問題?
我想象,把實際情況下沒有一個選擇?例如。如果你在'/ forms'上部署了Web應用程序,是否有'/ forms/unauthorized'? – avernet
此外,'%{context {path}/unauthorized'看起來是正確的方法,但是規則會再次捕獲此錯誤,因此會導致「重定向過多」錯誤。其實,似乎你不應該在這種情況下做一個重定向,只是返回一個403.這是否適合你? – avernet
@avernet將實際環境放在那裏並不理想,因爲它在所有環境中都不相同。這將是可行的。但它並沒有真正的幫助。正如你所說,規則再次捕捉到了這一點。我嘗試了包括另一個條件' /未授權 '(和變體:'未授權','表單/未授權','/表單/未授權'),再次抓住它,但沒有任何效果。我能夠得到它只是返回一個403,但需要添加' null '。我建議更新文檔。見下面的答案。 –
awilkinson