野蝇 10 |暗流 |创建可以访问 RequestContext 的 Wildfly LoginModule

WildFly 10 | Undertow | Create Wildfly LoginModule with access to RequestContext

我正在尝试为 wildfly 10 创建一个可以访问请求上下文的登录模块。我必须确定请求 url。我还必须分析 GET 参数以检查是否设置了令牌。

如何在基于 "UsernamePasswordLoginModule" 的 class 中访问请求上下文和 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) 并重新提交请求。不知道为什么。