在我为我的应用程序服务器(GlassFish 3.1.2.2)开发的自定义登录模块中,我使用以下语法来获取HttpServletRequest:
PolicyContext.getContext(HttpServletRequest.class.getName())
它工作正常。
但是现在我将服务器配置为仅使用HTTPS,并且相同的指令返回null。 我想这是一个安全限制,但我不确定需要改变什么才能解决这个问题(server.policy?)。 要把它放在上下文中,我需要记录所有登录尝试的IP地址,有效和无效,并且在模块中获取请求似乎是最明显的解决方案。
有人可以帮我找出解决方案吗?
答案 0 :(得分:0)
我无法直接帮助您解决问题,但您可能需要注意PolicyContext
是JACC课程。它的规格是在JACC政策提供者内部工作。您可能需要查看更深入解释此问题的an article I wrote。
因此没有具体保证从GlassFish专有登录模块中获取HttpServletRequest
,但我确实已经看到人们更频繁地使用它并且它通常有效。当你切换到https时它不起作用的事实听起来更像是对我的错误或疏忽而不是任何特定的安全限制。
您可以使用JASPIC将登录模块重写为Java EE标准auth模块。我还写了an article关于那个你可以用来参考的主题。在JASPIC中,您明确可以访问HttpServletRequest
。