java - tomcat 基本认证

标签 java apache security tomcat

我想通过以下方式保护个人 tomcat。

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

但是一些 ip 应该能够在没有身份验证的情况下访问 tomcat(大多数),而一些(例如 10.0.0.*)应该只能通过身份验证访问这个 tomcat。

我已经阅读了很多关于如何解决这个问题的资料。 Tomcat 远程访问过滤器和远程主机名在我的情况下不起作用,因为我不想拒绝/允许某些 IP 地址的 webapp。

我试图将这些行添加到 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" />

所以我在我的知识末尾(也许我没有太多 :D)。

有人可以给我举个例子或解决我的问题吗?也许我需要编辑的不仅仅是这个文件?还是我误解了什么?

谢谢!

最佳答案

在tomcat中使用认证有两种方式。 1. 如果您希望每个网络应用程序都不会被每个用户访问,您可以实现“领域配置”。使用此配置,每次用户访问 tomcat 中已部署的 Web 应用程序时,

它会询问用户名和密码。 有关详细信息,请参阅以下链接: https://tomcat.apache.org/tomcat-7.0-doc/realm-howto.html

  1. 另一种情况是,如果您希望特定的 ip 用户能够通过远程过滤器访问 tomcat,您可以实现这一点。 有关详细信息,请参阅以下链接: https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Host_Filter

正如您所说“Tomcat 远程访问过滤器和远程主机名在我的情况下不起作用,因为我不想拒绝/允许某些 IP 地址的 Web 应用程序。”

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

如果您仍想使用远程过滤器,请分享您正在执行的程序,以了解您失败的地方。

关于java - tomcat 基本认证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46728299/

相关文章:

security - 保护 Web 服务器数据的最佳实践

java - JVM 如何优化 Fluent api

python - Apache 上的 Flask 应用程序,CentOs 抛出 mod_fcgid : error reading data from FastCGI server

php - 如果某人具有世界读/写权限,是否可以在服务器上读取或写入我的 .php 文件?

c# - 肮脏的黑客 : add property or field to base type in c#?

php - 使用 PHP 或 Django 在 Apache 中重定向八位字节流

java - 未绑定(bind)类路径容器 : 'JRE System Library [Java SE 6 [1.6.0_65-b14-462]]' in project

java - jsoup.text() 和 jsoup.body().text() 的区别

java - 我无法理解 Merge Sorted Array 的示例测试用例?

apache - 我如何通过 Chef/vagrant 在 httpd.conf 中添加 "ServerName xxx"