Details
diff --git a/model/jpa/src/main/resources/META-INF/jpa-changelog-3.4.2.xml b/model/jpa/src/main/resources/META-INF/jpa-changelog-3.4.2.xml
index 6d962d7..4c1e6fb 100644
--- a/model/jpa/src/main/resources/META-INF/jpa-changelog-3.4.2.xml
+++ b/model/jpa/src/main/resources/META-INF/jpa-changelog-3.4.2.xml
@@ -25,4 +25,11 @@
</update>
</changeSet>
+ <changeSet author="mkanis@redhat.com" id="3.4.2-KEYCLOAK-5172">
+ <update tableName="CLIENT">
+ <column name="PROTOCOL" type="VARCHAR(255)" value="openid-connect"/>
+ <where>PROTOCOL IS NULL</where>
+ </update>
+ </changeSet>
+
</databaseChangeLog>
diff --git a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
index 1448c5b..34ee766 100755
--- a/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
+++ b/server-spi-private/src/main/java/org/keycloak/models/utils/RepresentationToModel.java
@@ -122,6 +122,7 @@ import org.keycloak.util.JsonSerialization;
public class RepresentationToModel {
private static Logger logger = Logger.getLogger(RepresentationToModel.class);
+ public static final String OIDC = "openid-connect";
public static OTPPolicy toPolicy(RealmRepresentation rep) {
OTPPolicy policy = new OTPPolicy();
@@ -1048,7 +1049,13 @@ public class RepresentationToModel {
if (resourceRep.isPublicClient() != null) client.setPublicClient(resourceRep.isPublicClient());
if (resourceRep.isFrontchannelLogout() != null)
client.setFrontchannelLogout(resourceRep.isFrontchannelLogout());
- if (resourceRep.getProtocol() != null) client.setProtocol(resourceRep.getProtocol());
+
+ // set defaults to openid-connect if no protocol specified
+ if (resourceRep.getProtocol() != null) {
+ client.setProtocol(resourceRep.getProtocol());
+ } else {
+ client.setProtocol(OIDC);
+ }
if (resourceRep.getNodeReRegistrationTimeout() != null) {
client.setNodeReRegistrationTimeout(resourceRep.getNodeReRegistrationTimeout());
} else {
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/ClientRegistrationTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/ClientRegistrationTest.java
index f586d62..f24b95a 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/ClientRegistrationTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/client/ClientRegistrationTest.java
@@ -124,6 +124,14 @@ public class ClientRegistrationTest extends AbstractClientRegistrationTest {
}
@Test
+ public void registerClientWithoutProtocol() throws ClientRegistrationException {
+ authCreateClients();
+ ClientRepresentation clientRepresentation = registerClient();
+
+ assertEquals("openid-connect", clientRepresentation.getProtocol());
+ }
+
+ @Test
public void registerClientAsAdminWithCreateOnly() throws ClientRegistrationException {
authCreateClients();
registerClient();