【问题标题】:Password protection .htaccess like in Java web applications密码保护 .htaccess 就像在 Java Web 应用程序中一样
【发布时间】:2013-03-27 05:55:17
【问题描述】:

我有以下场景:

我正在开发在 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 功能符合我的需要。

【问题讨论】:

    标签: java servlets jboss passwords security


    【解决方案1】:

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

    【讨论】:

    • 我在玩 spring 框架的 spring 安全部分,它非常有用,它封装了许多安全机制,在它们之间,HTTP BASIC 身份验证(基于 IETF RFC 的标准)。我无法尝试您的第二种方法,但我认为,对于这种情况,docs.oracle.com/javaee/6/tutorial/doc/gkbaa.html 的机制是最合适的。
    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-17
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多