java - 如何使用 IP 过滤器保护 Orbeon Form Runner 的安全?

标签 java orbeon

documentation here描述如何使用 IP 过滤器保护 Form Runner。我按照以下说明进行操作:

  1. 将 urlrewrite-3.2.0.jar 放入 Orbeon Forms WEB-INF/lib 文件夹
  2. 在 Orbeon Forms 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/

    如果我从其他地方访问它,我将无法访问 Form Runner,这很好,但重定向无法正常工作。我最终被重定向到以下 URL,该 URL 不包含应用程序上下文,因此我得到了 404。

    http://myserver.mydomain.com/unauthorized

    我尝试将 temporary-redirect 的值更改为 /%{context-path}/unauthorized 但随后我被重定向到 http://orbeon/未经授权。我还尝试了 %{context-path}/unauthorized 但随后出现“重定向过多”错误。

    知道如何解决这个问题吗?

    最佳答案

    我能够让 IP 过滤器简单地返回 403,而不重定向 URL。就我而言,这是更可取的。

    <?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" last="true">403</set>
            <to>null</to>
        </rule>
    </urlrewrite>
    

    我找到了to>null</to>此处的示例列表:http://tuckey.org/urlrewrite/manual/4.0/guide.html

    关于java - 如何使用 IP 过滤器保护 Orbeon Form Runner 的安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557328/

    相关文章:

    java - 无法连接到服务器(错误 404)

    html - 在 Orbeon Xforms 中按两次转义字符时如何处理重置行为

    java - 如何以编程方式检查市场上给定 jar 的最新版本?

    java - 这种取消/中止异步 servlet 处理的方法存在任何问题

    java - Hadoop 中的 HashMap

    xpath - Orbeon 形式 : How to check if yes-no answer is no (not empty or no! )

    mysql - 无法将 orbeon 连接到我自己的 mysql

    orbeon - xforms :input bound to a node of type xs:date? 可以使用哪些格式

    mysql - Orbeon Form Builder - 在 mySQL 中保存用户输入的数据

    java - 使用 Java 中的多线程删除多个文件