我有以下情况:
我正在开发在 Jboss 6.1.0 上运行的 Java EE Web 应用程序,并且我想在公共(public)服务器上发布此应用程序以供最终用户测试。
例如: http://mysite.com/testings/app1/
我的问题: 那么,当我的客户端尝试访问 http://mysite.com/testings/app1/ 时,以 .htaccess (Apache HTTP 服务器)方式保护该目录的适当方法是什么?被要求提供用户/密码组合吗?
我认为有两种选择:
- servlet 服务器上的配置?
- 反向代理?
我只是想澄清在这种情况下最好的做法是什么,因为对于 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/