如何允许访问某些计算机?

时间:2014-02-21 04:19:09

标签: tomcat

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

此外,是否有任何方法可以根据用户ID(环境变量)授予访问权限。我曾经使用VBA这样做。但是,由于这是本机微软产品,我不得不简单地进行sprecify environ。那么tomcat呢?

我读了这个article但是没有完全明白。我认为我需要使用Remote Address Filter,但我需要一个示例代码。

1 个答案:

答案 0 :(得分: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添加到允许范围。