我试图在 UserAuthenticationSecurityCheck 。 validateCredentials 方法中获取一些客户数据。
IP地址对它来说是最重要的。
在其他适配器中,我使用HttpServletRequest:
@Context
protected HttpServletRequest request;
但是这个请求对象在UserAuthenticationSecurityCheck中总是为空。
如何在此课程中获取客户端数据(IP地址或标题)?
答案 0 :(得分:0)
您无法将HttpServletRequest注入安全检查对象(按设计 - 而不是错误)。一旦用户通过身份验证,您就可以进行另一个适配器调用,从中可以获得所需的详细信息。不幸的是,这在任何地方都没有记载(至少我不知道)。
我遇到类似 AdapterAPI 类的问题,如here所述。
答案 1 :(得分:0)
您可以在安全适配器中获得请求,但不能从@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);
}