根据computer name
,我有什么办法可以提供访问权限。如何在configuration
中指定此条件?
此外,是否有任何方法可以根据用户ID(环境变量)授予访问权限。我曾经使用VBA这样做。但是,由于这是本机微软产品,我不得不简单地进行sprecify environ
。那么tomcat呢?
我读了这个article但是没有完全明白。我认为我需要使用Remote Address Filter
,但我需要一个示例代码。
答案 0 :(得分:1)
第一点,基于DNS主机名过滤请求是“昂贵的”。它强制tomcat进行反向DNS查找。当请求出现时,它没有DNS名称,而只是客户端的IP地址。因此,tomcat必须向系统询问与客户端IP地址对应的名称(或名称)。
如果要接受来自特定主机名的请求,您可能已经知道与主机名对应的IP地址(或IP地址范围)。如果是,那么您可以使用Remote Address Filter
为其设置所需的值(IP地址)。
第二点,使用Remote Address Filter
可以灵活地使用两个属性allow
和deny
。
示例:强>
注意:此处使用的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)" />
使用正则表达式可以为allow
和deny
配置动态值。
这些详细信息可以帮助您解决问题。
<强>被修改强>
最后一点,如果允许/拒绝IP地址范围,则不得拒绝来自“localhost”的请求。因此,请将127\.0\.0\.1
添加到允许范围。