拦截服务器端口以请求密码

拦截服务器端口以请求密码

我的服务器上正在运行一个 Java 应用程序,它会在服务器上的某个端口上创建一个页面。我能否在 Java 提供的该页面和用户首先请求密码的页面之间进行切换?

我意识到我可以通过 apache 控制的页面上的框架来做到这一点,但我希望它比这更安全。

谢谢!

答案1

由于您在问题中提到了 Apache 中的一个示例配置,因此...但是任何 Web 服务器软件(nginx、lighttpd)都应该可以使用 - 如果您更喜欢其他软件之一,请告诉我。

假设您已切换 Java 应用程序来监听127.0.0.1:8000

# I'm making this a port 443 example because basic authentication
# is completely unencrypted - if the credentials are sensitive at all,
# you should be using SSL. Change the port and drop the SSL directives if needed.
<VirtualHost *:443>
    ServerName example.com

    SSLEngine On
    SSLCertificateFile /path/to/public.pem
    SSLCertificateKeyFile /path/to/private.key

    <Location />
        AuthType Basic
        AuthName "Message Here"
        AuthBasicProvider file
        AuthUserFile /path/to/password/file  # Keep this outside of the web root.
        Require valid-user

        ProxyPass http://127.0.0.1:8000/
        ProxyPassReverse http://127.0.0.1:8000/
    </Location>
</VirtualHost>

使用二进制文件创建密码文件htpasswd,这样就可以了。

相关内容