Spring Key斗篷-如何从JWT访问令牌设置主体



我已经做了大约一个星期了。

我有一个用例,我通过主体而不是头部接收auth令牌,因此Keycloft和Spring不会自动设置用户。(原因是,使用websocket,我只能通过具有初始连接的主体发送auth令牌(

我曾尝试在keyclock之前拦截调用,并将令牌从主体复制到头部,但没有成功。

所以现在我想通过keycloft手动进行身份验证(或者只手动设置主要用户(。我可以访问JWT访问令牌,但从这里我不知道如何使用密钥斗篷进行身份验证。

有人有意见吗?

由于这里可能有两件Keycloft,我将从澄清开始:

  • 密钥斗篷-这是客户端用于获取JWT的授权服务器
  • Key斗篷适配器-这是配置资源服务器以将Key斗篷与Spring Security集成的东西

我有一个用例,我通过主体而不是头部接收身份验证令牌,因此Key斗篷和Spring不会自动设置用户。

Spring Security 5.1内置了对基于JWT的访问令牌的支持,因此您可能不需要使用Keycloft适配器来完成您想要做的事情。

当使用Spring Security的内置支持时,您可以将DefaultBearerTokenResolver配置为在正文中查找:

@Bean
public BearerTokenResolver bearerTokenResolver() {
DefaultBearerTokenResolver resolver =
new DefaultBearerTokenResolver();
resolver.setAllowFormEncodedBodyParameter(true);
return resolver;
}

最新更新