Skip to content

Commit e575675

Browse files
authored
Fix jwt module upgrade issue (#1744)
1 parent b8a754d commit e575675

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-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;

pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<qpid-protocol-plugin.version>8.0.0</qpid-protocol-plugin.version>
4545
<rabbitmq.version>5.8.0</rabbitmq.version>
4646
<sn.bom.version>4.2.0-SNAPSHOT</sn.bom.version>
47+
<opentelemetry.version>1.56.0</opentelemetry.version>
4748

4849
<!-- test dependencies -->
4950
<qpid-client-version>6.4.0</qpid-client-version>
@@ -146,6 +147,12 @@
146147
<version>${qpid-protocol-plugin.version}</version>
147148
</dependency>
148149

150+
<dependency>
151+
<groupId>io.opentelemetry</groupId>
152+
<artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId>
153+
<version>${opentelemetry.version}</version>
154+
</dependency>
155+
149156
</dependencies>
150157
</dependencyManagement>
151158

tests/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@
6666
<scope>test</scope>
6767
</dependency>
6868

69+
<dependency>
70+
<groupId>io.opentelemetry</groupId>
71+
<artifactId>opentelemetry-sdk-extension-autoconfigure-spi</artifactId>
72+
</dependency>
6973
</dependencies>
7074

7175
<build>

0 commit comments

Comments
 (0)