【问题标题】:How to allow access to certain computers?如何允许访问某些计算机?
【发布时间】:2014-02-21 04:19:08
【问题描述】:

有什么方法可以根据 computer name 提供访问权限。如何在 configuration 中指定此条件?

另外,有没有办法根据用户 ID(环境变量)授予访问权限。我曾经使用 VBA 来做到这一点。但是,由于这是本机微软产品,我不得不简单地指定 environ 。 tomcat 呢?

我读过这个article,但不太明白。我想我需要使用Remote Address Filter,但我需要一个示例代码。

【问题讨论】:

标签: tomcat


【解决方案1】:

第一点,基于 DNS 主机名过滤请求是“昂贵的”。它强制 tomcat 进行反向 DNS 查找。当请求出现时,它不带有 DNS 名称,而只是客户端的 IP 地址。因此,tomcat 必须向系统询问与客户端 IP 地址对应的名称(或名称)。

如果您想接受来自特定主机名的请求,您可能已经知道与主机名对应的 IP 地址(或 IP 地址范围)。如果是这样,那么您可以使用Remote Address Filter 为其设置所需的值(IP 地址)。

第二点,使用Remote Address Filter 提供了两个属性allowdeny 的灵活性。

示例:

注意:此处使用的 IP 地址仅作为示例。

假设有一个主机名myhostname,IP 地址范围为134.87.13.0 - 134.87.13.255。 您只想允许此范围并拒绝所有其他范围。 您将为此范围进行 DNS 查找。说如果你找到它为164.32.90.100

然后您将 Valve 配置为:

 <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="164\.32\.90\.100, 134\.87\.13\.\d{1,3}" />

现在假设在范围内,您要拒绝子范围134.87.13.51 - 134.87.13.60

然后您将 Valve 配置为:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="164\.32\.90\.100, 134\.87\.13\.\d{1,3}" deny="134\.87\.13\.(5[1-9]|60)" />

可以使用正则表达式为allowdeny 配置动态值。

这些细节能否帮助您解决问题。

已编辑

最后一点,如果您允许/拒绝 IP 地址范围,则不得拒绝来自“localhost”的请求。所以将127\.0\.0\.1 添加到您的允许范围内。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-20
    • 2012-08-03
    • 1970-01-01
    • 2014-10-19
    • 2012-05-26
    • 2011-11-22
    相关资源
    最近更新 更多