Skip to content

Commit

Permalink
Fix runtime exception in obo authenticator
Browse files Browse the repository at this point in the history
Signed-off-by: Ryan Liang <jiallian@amazon.com>
  • Loading branch information
RyanL1997 committed Jul 24, 2023
1 parent 6a2f773 commit d58af05
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,10 @@ public class OnBehalfOfAuthenticator implements HTTPAuthenticator {
public OnBehalfOfAuthenticator(Settings settings) {
oboEnabled = Boolean.valueOf(settings.get("on_behalf_of_enabled"));
encryptionKey = settings.get("encryption_key");
jwtParser = initParser(settings.get("signing_key"), oboEnabled);
jwtParser = initParser(settings.get("signing_key"));
}

private JwtParser initParser(final String signingKey, final Boolean oboEnabled) {
if (oboEnabled != true) {
throw new RuntimeException("On-behalf-of authentication has been disabled");
}
private JwtParser initParser(final String signingKey) {
JwtParser _jwtParser = keyUtil.keyAlgorithmCheck(signingKey, log);
if (_jwtParser != null) {
return _jwtParser;
Expand Down Expand Up @@ -133,6 +130,11 @@ public AuthCredentials run() {
}

private AuthCredentials extractCredentials0(final RestRequest request) {
if (oboEnabled != true) {
log.error("On-behalf-of authentication has been disabled");
return null;
}

if (jwtParser == null) {
log.error("Missing Signing Key. JWT authentication will not work");
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -523,7 +523,13 @@ public void setEncryptionKey(String encryptionKey) {

@Override
public String toString() {
return "OnBehalfOf [ on_behalf_of=" + oboEnabled + ", signing_key=" + signingKey + ", encryption_key=" + encryptionKey + "]";
return "OnBehalfOf [ on_behalf_of_enabled="
+ oboEnabled
+ ", signing_key="
+ signingKey
+ ", encryption_key="
+ encryptionKey
+ "]";
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/org/opensearch/security/util/keyUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ public static JwtParser keyAlgorithmCheck(final String signingKey, final Logger
}

if (Objects.nonNull(key)) {
return Jwts.parser().setSigningKey(key);
return Jwts.parserBuilder().setSigningKey(key).build();
}

return Jwts.parser().setSigningKey(decoded);
return Jwts.parserBuilder().setSigningKey(decoded).build();
} catch (Throwable e) {
log.error("Error while creating JWT authenticator", e);
throw new RuntimeException(e);
Expand Down

0 comments on commit d58af05

Please sign in to comment.