2017-10-13 319 views
0

我想用以下方式确保personel tomcat的安全。tomcat基本身份验证

基本上每个人(每个ip)都应该能够访问这个tomcat的webapps。

但是,一些IP应该能够在没有认证的情况下访问tomcat(大多数)以及一些(例如10.0.0。*)应该只能通过认证来访问这个tomcat。

我读过很多关于如何解决这个问题。 Tomcat远程访问过滤器和远程主机名不适用于我的情况,因为我不想拒绝/允许某些IP地址的Web应用程序。

我试图将这些行添加符合预期到context.xml中,我(本地主机)可以在不认证访问Tomcat,但认证仍需要:

<Context antiJARLocking="true" path="/"> 
<Valve className="org.apache.catalina.valves.RemoteAddrValve" invalidAuthenticationWhenDeny="true" allow="127\.0\.0\.1"/> 
<Valve className="org.apache.catalina.authenticator.BasicAuthenticator" /> 

所以在最后IM我的知识(也许我没有太多:D)。

有人可以给我一个例子或解决我的问题?也许我必须编辑超过这个文件?还是我误解了一些东西?

谢谢!

+0

据我所知,应该在Tomcat上保护Web应用程序,而不是服务器本身:http://www.avajava.com/tutorials/lessons/how-do-i-use-basic-authentication-with- tomcat.html?page = 1 –

回答

0

在tomcat中有两种使用身份验证的方法。 1.如果您希望每个用户都无法访问每个Web应用程序,则可以实施“Realm配置”。使用此配置,每当用户访问tomcat中部署的Web应用程序时,它都会询问用户名和密码。 了解更多详情请参考以下链接: https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html

  • 另一种情况是,如果你想要一个能够访问Tomcat的特定IP用户通过远程过滤器就可以实现这一点。 更多细节请参考以下链接: https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Host_Filter
  • 正如你说“Tomcat的远程访问过滤和远程主机名是不是在我的情况下工作,因为我不希望拒绝/允许Web应用程序一些IP地址“。

    在这种情况下,如果您不想为IP绑定Web应用程序,则可以实施“Realm配置”。这就是为什么你可以尝试使用用户名和密码的领域配置。

    如果你仍然想使用远程过滤器,然后分享你的过程,你要了解你失败的地方。

    +0

    嗨,我想要实现的是,每个IP都需要使用用户名和密码验证,但例如我的本地ip(或本地主机127.0.0.1)不必认证自己。所以我想配置一些ips,不需要认证。这应该是整个tomcat的“路要走”。 –

    +0

    当您想要为具有该用户指定角色的特定用户访问Web应用程序时,领域配置很有用。使用此功能,我们可以在带有角色的Web应用程序配置文件中提供具有密码的用户,并且可以将用户列表与该角色绑定。之后,只有经过身份验证的用户才可以访问Web应用程序。要仅允许某些ip访问Web应用程序,请使用拒绝和允许部分按照远程过滤器进行操作。根据您的要求,您需要实现领域配置和远程过滤器 – poojagupta

    +0

    例如:如果您有4 ips,并且您想为两个ips提供经过身份验证的访问,那么为两个ips实施领域配置,即提及用户名和密码以及这两个角色IPS。 JDBCRealm只能用于这些IPS,而其他两个IP可以使用远程过滤器进行配置(根据需要允许或拒绝)。 – poojagupta