Skip to content

Commit 252bbaa

Browse files
committed
Fix jwt module upgrade issue
1 parent b8a754d commit 252bbaa

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

amqp-client-auth/src/main/java/io/streamnative/rabbitmq/authentication/TokenCredentialsProvider.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
*/
3030
@Slf4j
3131
public class TokenCredentialsProvider implements CredentialsProvider {
32+
33+
private static final String JOSE_HEADER_UNSECURED_ENCODED = "eyJhbGciOiJub25lIn0";
3234
private final Supplier<String> tokenSupplier;
3335
private String token;
3436
private Jwt<Header, Claims> jwt;
@@ -40,12 +42,20 @@ public TokenCredentialsProvider(Supplier<String> tokenSupplier) {
4042

4143
private void load(Supplier<String> tokenSupplier) {
4244
String token = tokenSupplier.get();
43-
int i = token.lastIndexOf('.');
44-
String withoutSignature = token.substring(0, i + 1);
45-
this.jwt = Jwts.parserBuilder().build().parseClaimsJwt(withoutSignature);
45+
this.jwt = Jwts.parser().unsecured().build().parseClaimsJwt(transformToUnsecuredJwt(token));
4646
this.token = token;
4747
}
4848

49+
public static String transformToUnsecuredJwt(String token) {
50+
String[] parts = token.split("\\.");
51+
if (parts.length != 3) {
52+
throw new IllegalArgumentException("Invalid JWT token");
53+
}
54+
StringBuilder sb = new StringBuilder(128);
55+
sb.append(JOSE_HEADER_UNSECURED_ENCODED).append('.').append(parts[1]).append('.');
56+
return sb.toString();
57+
}
58+
4959
@Override
5060
public String getUsername() {
5161
return null;

0 commit comments

Comments
 (0)