keycloak-uncached

Merge pull request #3808 from hmlnarik/KEYCLOAK-4329-NPE-when-not-providing-KeyInfo-element-in-IdP-initiated-SSO-SAML-2.5 KEYCLOAK-4329

1/30/2017 12:15:35 PM

Details

diff --git a/saml-core/src/main/java/org/keycloak/saml/processing/api/util/KeyInfoTools.java b/saml-core/src/main/java/org/keycloak/saml/processing/api/util/KeyInfoTools.java
index be9bf51..69fc05c 100644
--- a/saml-core/src/main/java/org/keycloak/saml/processing/api/util/KeyInfoTools.java
+++ b/saml-core/src/main/java/org/keycloak/saml/processing/api/util/KeyInfoTools.java
@@ -35,6 +35,9 @@ public class KeyInfoTools {
      * @return The object or {@code null} if not found.
      */
     public static <T> T getContent(Iterable<Object> objects, Class<T> clazz) {
+        if (objects == null) {
+            return null;
+        }
         for (Object o : objects) {
             if (clazz.isInstance(o)) {
                 return (T) o;
@@ -45,11 +48,11 @@ public class KeyInfoTools {
 
 
     public static KeyName getKeyName(KeyInfo keyInfo) {
-        return getContent(keyInfo.getContent(), KeyName.class);
+        return keyInfo == null ? null : getContent(keyInfo.getContent(), KeyName.class);
     }
 
     public static X509Data getX509Data(KeyInfo keyInfo) {
-        return getContent(keyInfo.getContent(), X509Data.class);
+        return keyInfo == null ? null : getContent(keyInfo.getContent(), X509Data.class);
     }
 
     public static X509Certificate getX509Certificate(KeyInfo keyInfo) {