我正在尝试为可以访问请求上下文的 Wildfly 10 创建一个登录模块。我必须确定请求 url。我还必须分析 GET 参数以检查是否设置了令牌。
如何访问基于“UsernamePasswordLoginModule”的类中的请求上下文和 url 信息?
我试过这个
@Resource WebServiceContext wsctx;
但它不起作用。
我正在尝试为可以访问请求上下文的 Wildfly 10 创建一个登录模块。我必须确定请求 url。我还必须分析 GET 参数以检查是否设置了令牌。
如何访问基于“UsernamePasswordLoginModule”的类中的请求上下文和 url 信息?
我试过这个
@Resource WebServiceContext wsctx;
但它不起作用。
您应该实现一些预处理器来将请求参数保存到某个 ThreadLocal 变量(例如,您可以在 Web 过滤器中执行此操作)。然后在您的登录模块中,您将能够从 ThreadLocal 中读取此参数。
我已经尝试过你的建议。但它不起作用。网络过滤器不调用。
在第二步中,我尝试了以下方法
try {
HttpServletRequest request = (HttpServletRequest) javax.security.jacc.PolicyContext
.getContext(HttpServletRequest.class.getName());
} catch (PolicyContextException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
结果是该方法可能会在此时终止(getContext)并重新提交请求。我不知道为什么。