diff --git a/jans-auth-server/model/src/main/java/io/jans/as/model/common/ResponseType.java b/jans-auth-server/model/src/main/java/io/jans/as/model/common/ResponseType.java index 34aa3dca104..aaa4bf9c5e6 100644 --- a/jans-auth-server/model/src/main/java/io/jans/as/model/common/ResponseType.java +++ b/jans-auth-server/model/src/main/java/io/jans/as/model/common/ResponseType.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonValue; import com.google.common.collect.Lists; import io.jans.orm.annotation.AttributeEnum; +import org.apache.commons.lang3.StringUtils; import java.util.ArrayList; import java.util.HashMap; @@ -136,6 +137,9 @@ public static List fromString(String paramList, String separator) } public static boolean isImplicitFlow(String responseTypes) { + if (StringUtils.isBlank(responseTypes)) { + return false; + } return !responseTypes.contains("code") && (responseTypes.contains("id_token") || responseTypes.contains("token")); } diff --git a/jans-auth-server/model/src/test/java/io/jans/as/model/common/ResponseTypeTest.java b/jans-auth-server/model/src/test/java/io/jans/as/model/common/ResponseTypeTest.java new file mode 100644 index 00000000000..f90169d9d05 --- /dev/null +++ b/jans-auth-server/model/src/test/java/io/jans/as/model/common/ResponseTypeTest.java @@ -0,0 +1,34 @@ +package io.jans.as.model.common; + +import org.testng.Assert; +import org.testng.annotations.Test; + +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertTrue; + +/** + * @author Yuriy Zabrovarnyy + */ +public class ResponseTypeTest { + + + @Test + public void isImplicitFlow_withNull_shouldReturnFalseWithoutException() { + assertFalse(ResponseType.isImplicitFlow(null)); + } + + @Test + public void isImplicitFlow_withBlankValue_shouldReturnFalse() { + assertFalse(ResponseType.isImplicitFlow("")); + } + + @Test + public void isImplicitFlow_withUnknownValue_shouldReturnFalse() { + assertFalse(ResponseType.isImplicitFlow("dfs")); + } + + @Test + public void isImplicitFlow_withTokenAndIdTokenValue_shouldReturnTrue() { + assertTrue(ResponseType.isImplicitFlow("token id_token")); + } +}