当前位置: 首页 > 知识库问答 >
问题:

对于spring boot>2.2.7,当令牌类型为“at+JWT”时,JWT错误的解码

冯和硕
2023-03-14

当令牌类型为“at+jwt”时,我们在验证中得到错误:

这只发生在大于2.2.7的spring boot版本中,你知道如何在验证中设置允许的令牌类型吗?

共有1个答案

马弘和
2023-03-14

我也有同样的问题。我用依赖项更改解决了这个问题:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-oauth2-jose</artifactId>
    <exclusions>
        <exclusion>
            <groupId>com.nimbusds</groupId>
            <artifactId>nimbus-jose-jwt</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>com.nimbusds</groupId>
    <artifactId>nimbus-jose-jwt</artifactId>
    <version>7.9</version>
</dependency>

问题是在version 8+中,在cearommit https://bitbucket.org/connect2id/nimbus-jose-jwt/commits/ee6aec33c6349ebc85de37f4b76da7f1feeb0ee5中出现了一个新的DefaultJOSEObjectTypeVerifier类,它检查允许的类型。必须单独添加类型“AT+JWT”。

 类似资料:
  • 我正在使用spring security对使用jwt令牌的用户进行身份验证。 身份验证工作正常,当令牌格式错误或过期时,我将获得403 Http状态,如下配置所示: 但是,当我从spring security context使用主体或身份验证从jwt令牌获取用户信息时,如下面的代码所示: 如果令牌格式不正确或过期,我将从主体对象获得空指针异常和500https状态。

  • 我使用jsonwebtoken解码我的令牌,看看它是否已过期。但是,控制台.log返回 null。 我不明白,因为我的令牌不为空

  • 我不明白这个图书馆是如何工作的。你能帮帮我吗? 以下是我的简单代码: 这是错误: 字符串需要采用紧凑的JSON格式,格式为:Base64UrlEncodedHeader。Base64UrlEndcodedPayload。可选,Base64UrlEncodedSignature'。 如果你复制流在jwt.io网站,它的作品罚款:)

  • 我正在阅读JWT的示例文件夹,我有点不确定验证令牌的工作原理。 这里直接使用“mySigningKey”在中签名 现在,对我来说,未解析就不那么清楚了: 是为了验证客户端返回的令牌字符串的签名是否有效,您是否需要 解码声明(在&MyCustomClaims{}中完成) 使用token.valid验证解码声明的签名部分对“令牌中包含的pub密钥”是否有效。 但这个例子只是解码密钥,通过“魔术”返回的

  • 问题内容: 我目前正在使用Golang应用程序。我从客户端收到JWT令牌,在Go中,我需要对该令牌进行解码并获取以下信息:用户,名称等。我正在检查可用于处理JWT的库令牌,我来到https://github.com/dgrijalva/jwt- go ,但我看不到如何简单地制作所需的东西。 我有令牌,我需要将信息解码为地图或至少为json。在哪里可以找到如何做的指南?谢谢! 问题答案: 函数接受第

  • 我使用了一个JWT(Json Web令牌),它在负载中有一个刷新令牌(GUID)。通常,我使用Firebase JWT创建/编码和解码JWT。 我想在PHP中解码一个过期的JWT,然后使用其负载中的刷新令牌创建一个新的JWT(只要刷新令牌仍然有效)。如果我用Firebase解码JWT,它会抛出一个异常(过期),并且不会返回解码后的令牌。 如何安全地解码过期的JWT并访问它的有效负载?我可以只捕获过