MobileFirst 8:在 UserAuthenticationSecurityCheck 中获取客户端数据(IP 地址、请求数据)

MobileFirst 8: get client data ( IP address, request data ) in UserAuthenticationSecurityCheck

我正在尝试在 UserAuthenticationSecurityCheck.validateCredentials 方法中获取一些客户端数据。

IP 地址是最重要的。

在其他适配器中,我使用的是 HttpServletRequest:

@Context
protected HttpServletRequest request;

但此请求 object 在 UserAuthenticationSecurityCheck 中始终为 null。

如何在此 class 中获取客户端数据(IP 地址或 headers)?

您不能将 HttpServletRequest 注入安全检查对象(设计使然 - 不是错误)。一旦用户通过身份验证,您就可以进行另一个适配器调用,从中您可以获得所需的详细信息。不幸的是,这在任何地方都没有记录(至少据我所知)。

我遇到了与 AdapterAPI class 类似的问题,如 所述。

您可以在安全适配器中获取请求,但不能从@Context 中获取。 只需覆盖授权方法:

@Override
public void authorize(Set<String> scope, Map<String, Object> credentials, HttpServletRequest request, AuthorizationResponse response) {
    //TODO use request object 
    super.authorize(scope, credentials, request, response);

}