如何允许/限制某些计算机名称访问tomcat服务器?

时间:2014-03-04 02:44:40

标签: tomcat

我在电脑上打开了一台服务器。我在同一网络上的所有朋友都可以通过他们的计算机访问它。但是我想只允许我的一个朋友访问。所以我试着在我的context.xml

中写下以下内容
<Context>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="myFriendsComputerName"
    />
</Context>

他得到错误403被拒绝访问。


然后我试了

<Context>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        allow="127\.0\.0\.1"
    />
</Context>

这限制了我自己的计算机访问。

我的context.xml

有什么问题

2 个答案:

答案 0 :(得分:5)

RemoteAddrValve始终使用IP地址。如果要按主机名限制,则需要使用RemoteHostValve。请注意,您正在使用正则表达式,因此您可以根据需要匹配客户端主机名的一部分(但它的安全性会稍差)。

另请注意,如果您的服务器上已禁用DNS解析,您仍将与远程客户端的IP地址进行比较,因此您可能希望通过允许主机名或IP地址进行IP回退。

答案 1 :(得分:4)

您必须使用RemoteHostValve而不是RemoteAddrValve,并使用主机的FQDN。因此,如果您的域名是mydomain.com,请使用:

<Context>
    <Valve className="org.apache.catalina.valves.RemoteHostValve"
        allow="myFriendsComputerName.mydomain.com"
    />
</Context>

您可以使用nslookup来发现主机如何将您的朋友IP地址解析为主机名:

nslookup x.y.w.z