diff --git a/openid-connect-common/src/main/java/org/mitre/jose/JWEAlgorithmEntity.java b/openid-connect-common/src/main/java/org/mitre/jose/JWEAlgorithmEntity.java index 049fd36ba..bc63132a1 100644 --- a/openid-connect-common/src/main/java/org/mitre/jose/JWEAlgorithmEntity.java +++ b/openid-connect-common/src/main/java/org/mitre/jose/JWEAlgorithmEntity.java @@ -8,6 +8,7 @@ import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.Transient; +import com.google.common.base.Strings; import com.nimbusds.jose.JWEAlgorithm; /** @@ -30,8 +31,14 @@ public class JWEAlgorithmEntity { this.algorithm = algorithm; } - public JWEAlgorithmEntity(String algorithmName) { - setAlgorithmName(algorithmName); + public static JWEAlgorithmEntity getForAlgorithmName (String algorithmName) { + JWEAlgorithmEntity ent = new JWEAlgorithmEntity(); + ent.setAlgorithmName(algorithmName); + if (ent.getAlgorithm() == null) { + return null; + } else { + return ent; + } } /** @@ -53,7 +60,7 @@ public class JWEAlgorithmEntity { * @param algorithmName */ public void setAlgorithmName(String algorithmName) { - if (algorithmName != null) { + if (!Strings.isNullOrEmpty(algorithmName)) { algorithm = JWEAlgorithm.parse(algorithmName); } else { algorithm = null; diff --git a/openid-connect-common/src/main/java/org/mitre/jose/JWEEncryptionMethodEntity.java b/openid-connect-common/src/main/java/org/mitre/jose/JWEEncryptionMethodEntity.java index 605d8a7cb..297f1b42a 100644 --- a/openid-connect-common/src/main/java/org/mitre/jose/JWEEncryptionMethodEntity.java +++ b/openid-connect-common/src/main/java/org/mitre/jose/JWEEncryptionMethodEntity.java @@ -7,6 +7,7 @@ import javax.persistence.Basic; import javax.persistence.Embeddable; import javax.persistence.Transient; +import com.google.common.base.Strings; import com.nimbusds.jose.EncryptionMethod; import com.nimbusds.jose.JWEAlgorithm; @@ -27,8 +28,14 @@ public class JWEEncryptionMethodEntity { this.algorithm = algorithm; } - public JWEEncryptionMethodEntity(String algorithmName) { - setAlgorithmName(algorithmName); + public static JWEEncryptionMethodEntity getForAlgorithmName (String algorithmName) { + JWEEncryptionMethodEntity ent = new JWEEncryptionMethodEntity(); + ent.setAlgorithmName(algorithmName); + if (ent.getAlgorithm() == null) { + return null; + } else { + return ent; + } } /** @@ -46,11 +53,11 @@ public class JWEEncryptionMethodEntity { /** * Set the name of this algorithm. - * Calls JWEAlgorithm.parse() + * Calls EncryptionMethod.parse() * @param algorithmName */ public void setAlgorithmName(String algorithmName) { - if (algorithmName != null) { + if (!Strings.isNullOrEmpty(algorithmName)) { algorithm = EncryptionMethod.parse(algorithmName); } else { algorithm = null; diff --git a/openid-connect-common/src/main/java/org/mitre/jose/JWSAlgorithmEntity.java b/openid-connect-common/src/main/java/org/mitre/jose/JWSAlgorithmEntity.java index 22691ce06..02c6ca252 100644 --- a/openid-connect-common/src/main/java/org/mitre/jose/JWSAlgorithmEntity.java +++ b/openid-connect-common/src/main/java/org/mitre/jose/JWSAlgorithmEntity.java @@ -9,6 +9,7 @@ import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; +import com.google.common.base.Strings; import com.nimbusds.jose.JWSAlgorithm; /** @@ -31,8 +32,14 @@ public class JWSAlgorithmEntity { this.algorithm = algorithm; } - public JWSAlgorithmEntity(String algorithmName) { - setAlgorithmName(algorithmName); + public static JWSAlgorithmEntity getForAlgorithmName (String algorithmName) { + JWSAlgorithmEntity ent = new JWSAlgorithmEntity(); + ent.setAlgorithmName(algorithmName); + if (ent.getAlgorithm() == null) { + return null; + } else { + return ent; + } } /** @@ -54,7 +61,7 @@ public class JWSAlgorithmEntity { * @param algorithmName */ public void setAlgorithmName(String algorithmName) { - if (algorithmName != null) { + if (!Strings.isNullOrEmpty(algorithmName)) { algorithm = JWSAlgorithm.parse(algorithmName); } else { algorithm = null; diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientAPI.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientAPI.java index 0d8eb9cad..88e7a128b 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientAPI.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientAPI.java @@ -67,7 +67,7 @@ public class ClientAPI { @Override public JWSAlgorithmEntity deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonPrimitive()) { - return new JWSAlgorithmEntity(json.getAsString()); + return JWSAlgorithmEntity.getForAlgorithmName(json.getAsString()); } else { return null; } @@ -77,7 +77,7 @@ public class ClientAPI { @Override public JWEAlgorithmEntity deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonPrimitive()) { - return new JWEAlgorithmEntity(json.getAsString()); + return JWEAlgorithmEntity.getForAlgorithmName(json.getAsString()); } else { return null; } @@ -87,7 +87,7 @@ public class ClientAPI { @Override public JWEEncryptionMethodEntity deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { if (json.isJsonPrimitive()) { - return new JWEEncryptionMethodEntity(json.getAsString()); + return JWEEncryptionMethodEntity.getForAlgorithmName(json.getAsString()); } else { return null; } diff --git a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientDynamicRegistrationEndpoint.java b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientDynamicRegistrationEndpoint.java index 2bd6c34a3..d0fda7968 100644 --- a/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientDynamicRegistrationEndpoint.java +++ b/openid-connect-server/src/main/java/org/mitre/openid/connect/web/ClientDynamicRegistrationEndpoint.java @@ -263,7 +263,7 @@ public class ClientDynamicRegistrationEndpoint { private JWSAlgorithmEntity getAsJwsAlgorithm(JsonObject o, String member) { String s = getAsString(o, member); if (s != null) { - return new JWSAlgorithmEntity(s); + return JWSAlgorithmEntity.getForAlgorithmName(s); } else { return null; } @@ -275,7 +275,7 @@ public class ClientDynamicRegistrationEndpoint { private JWEAlgorithmEntity getAsJweAlgorithm(JsonObject o, String member) { String s = getAsString(o, member); if (s != null) { - return new JWEAlgorithmEntity(s); + return JWEAlgorithmEntity.getForAlgorithmName(s); } else { return null; } @@ -288,7 +288,7 @@ public class ClientDynamicRegistrationEndpoint { private JWEEncryptionMethodEntity getAsJweEncryptionMethod(JsonObject o, String member) { String s = getAsString(o, member); if (s != null) { - return new JWEEncryptionMethodEntity(s); + return JWEEncryptionMethodEntity.getForAlgorithmName(s); } else { return null; }