你可以使用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>