2

我有以下情况:

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

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

我的问题:以 .htaccess(Apache HTTP 服务器)方式保护该目录的适当方法是什么,因此,当我的客户端尝试访问http://mysite.com/testings/app1/时,系统会询问用户/密码组合?。

我认为有两种选择:

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

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

4

1 回答 1

2

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

或者您可以使用“高于”jboss 的 apache httpd 服务器(使用重写和代理),以便用户通过 apache 访问您的站点,然后 apache 转发到 jboss(只会在 localhost 上侦听)。这是一个示例重写规则,用于将“www.mysite.com”转发到带有端口 8009 上的 AJP 连接器的 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>
于 2013-04-04T23:45:33.793 回答