java - 像 Java Web 应用程序中一样的密码保护 .htaccess

标签 java servlets jboss passwords security

我有以下情况:

我正在开发在 Jboss 6.1.0 上运行的 Java EE Web 应用程序,并且我想在公共(public)服务器上发布此应用程序以供最终用户测试。

例如: http://mysite.com/testings/app1/

我的问题: 那么,当我的客户端尝试访问 http://mysite.com/testings/app1/ 时,以 .htaccess (Apache HTTP 服务器)方式保护该目录的适当方法是什么?被要求提供用户/密码组合吗?

我认为有两种选择:

  1. servlet 服务器上的配置?
  2. 反向代理?

我只是想澄清在这种情况下最好的做法是什么,因为对于 php 应用程序,.htaccess 功能符合我的需求。

最佳答案

你可以使用 spring security,我在 How do I do HTTP basic auth using Struts 2/ Spring 3? 中写了一个例子.

或者您可以使用 jboss“上方”的 apache httpd 服务器(使用重写和代理),以便用户通过 apache 访问您的站点,并且 apache 转发到 jboss(只会在本地主机上监听)。下面是一个示例重写规则,用于使用端口 8009 上的 AJP 连接器将“www.mysite.com”转发到 Web 应用程序“myapp”:

<VirtualHost www.mysite.com:80 >
    RewriteEngine on
    RewriteCond %{HTTP_HOST} www\.mysite\.com
    RewriteRule ^/(.*)$ ajp://localhost:8009/myapp/$1 [P,QSA,L]
</VirtualHost>

然后您可以使用 apache auth 系统,例如保护所有 admin/* 页面:

<Proxy ajp://localhost:8009/myapp/admin/* >
    Order deny,allow
    Allow from all
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Admin"
    AuthUserFile /etc/apache2/passwd/admin.passwd
    Require valid-user
</Proxy>

关于java - 像 Java Web 应用程序中一样的密码保护 .htaccess,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15823394/

相关文章:

java - 哪个 Java EE 服务器?

java - 需要使用 TCP 和 OpenSSL 将 Java 客户端连接到 Cpp 服务器

java - 无法通过 JBoss AS 7 安全子系统进行身份验证

java - 使用字符串类名的通用类型调用

java - 用于检查 session 存在的过滤器

java - 向 127.0.0.1 发送请求 :8084/(Tomcat) takes ~1000ms while to 127. 0.0.1/(Wamp) 需要 ~20ms

java - 将另一个项目添加到集合对象

configuration - 我们如何从JBOSS配置数据库连接?

java - 是否可以与共享主机建立 tcp 连接(服务器-客户端)?

java - Java中的线程结构