Skip to content
This repository was archived by the owner on Apr 10, 2025. It is now read-only.

Commit d1d5c2a

Browse files
authored
Merge pull request #17 from genexuslabs/issue#82739
Add expected algorithm verification to JWTCreator.DoVerify
2 parents f8b3e85 + f13a8d1 commit d1d5c2a

File tree

2 files changed

+9
-2
lines changed

2 files changed

+9
-2
lines changed

GeneXusJWT/src/main/java/com/genexus/JWT/JWTCreator.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public String doCreate(String algorithm, PrivateClaims privateClaims, JWTOptions
8585
return signedJwt;
8686
}
8787

88-
public boolean doVerify(String token, PrivateClaims privateClaims, JWTOptions options) {
88+
public boolean doVerify(String token, String expectedAlgorithm, PrivateClaims privateClaims, JWTOptions options) {
8989
if (options.hasError()) {
9090
this.error = options.getError();
9191
return false;
@@ -106,6 +106,13 @@ public boolean doVerify(String token, PrivateClaims privateClaims, JWTOptions op
106106
if (this.hasError()) {
107107
return false;
108108
}
109+
JWTAlgorithm expectedJWTAlgorithm = JWTAlgorithm.getJWTAlgorithm(expectedAlgorithm, this.error);
110+
if(alg.compareTo(expectedJWTAlgorithm) != 0 || this.hasError())
111+
{
112+
this.error.setError("JW008", "Expected algorithm does not match token algorithm");
113+
return false;
114+
}
115+
109116
Algorithm algorithmType = null;
110117
if (JWTAlgorithm.isPrivate(alg)) {
111118
CertificateX509 cert = options.getCertificate();

GeneXusJWT/src/main/java/com/genexus/commons/JWTObject.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public JWTObject() {
1111
}
1212

1313
public abstract String doCreate(String algorithm, PrivateClaims privateClaims, JWTOptions options);
14-
public abstract boolean doVerify(String token, PrivateClaims privateClaims, JWTOptions options);
14+
public abstract boolean doVerify(String token, String expectedAlgorithm, PrivateClaims privateClaims, JWTOptions options);
1515
public abstract String getPayload(String token) ;
1616
public abstract String getHeader(String token);
1717
public abstract String getTokenID(String token);

0 commit comments

Comments
 (0)