Grizzly HttpServer可以提供双网络管理员,一个是客户端身份验证,另一个是没有?

时间:2014-10-15 03:44:18

标签: authentication grizzly

我希望我的HttpServer为经过身份验证的客户端提供一组受限制的服务,并提供“公共”服务。为任何客户提供服务。

这两项服务都使用TLS加密 - 只有第一项需要客户端身份验证。我看到如何创建和配置两个NetworkListener - 每个都在自己的端口上,并使用适当的SSLContext和Engine配置器 - 以及如何将它们添加到HttpServer。

如何将不同的HttpHandler关联到不同的侦听器?或者,如何在处理程序中告知客户端是否经过身份验证?

Binding different Grizzly HttpHandlers to different NetworkListeners建议我可能需要并行HttpServers?

1 个答案:

答案 0 :(得分:0)

  1. 你是对的,没有办法将HttpHandler部署到特定的NetworkListener,只能部署到HttpServer。你可以在[1]提出问题,我们会在有空的时候解决它。也欢迎捐款;)

  2. 为了确定客户端是否经过身份验证 - 您可以尝试使用“请求”属性获取其证书,例如:

  3. request.getAttribute("javax.servlet.request.X509Certificate");
    

    如果属性不为null - 客户端已通过身份验证。

    [1] https://java.net/jira/browse/GRIZZLY/