thomasdarimont / embedded-spring-boot-keycloak-server

Keycloak JAX-RS application embedded in a Spring-Boot App.
Apache License 2.0
285 stars 111 forks source link

Mixing with org.keycloak:keycloak-spring-boot-starter #42

Open nmwael opened 3 years ago

nmwael commented 3 years ago

when I set these properties: keycloak: realm: xxxx auth-server-url: http://localhost:9999/auth ssl-required: none resource: xxxx-app public-client: true

Then embedded gets confused over missing properties: `APPLICATION FAILED TO START


Description:

Binding to target [Bindable@1842679 type = org.keycloak.adapters.springboot.KeycloakSpringBootProperties, value = 'provided', annotations = array[@org.springframework.boot.context.properties.ConfigurationProperties(ignoreInvalidFields=false, ignoreUnknownFields=false, prefix=keycloak, value=keycloak)]] failed:

Property: keycloak.admin.realm
Value: master
Origin: class path resource [keycloak-defaults.yml] from embedded-keycloak-server-spring-boot-support-4.0.0.jar - 12:12
Reason: The elements [keycloak.admin.realm,keycloak.authorizationpersister.provider,keycloak.client.provider,keycloak.connectionshttpclient.default,keycloak.connectionsinfinispan.default.async,keycloak.connectionsinfinispan.default.clustered,keycloak.connectionsinfinispan.default.hotrodprotocolversion,keycloak.connectionsinfinispan.default.jgroupsudpmcastaddr,keycloak.connectionsinfinispan.default.l1lifespan,keycloak.connectionsinfinispan.default.nodename,keycloak.connectionsinfinispan.default.remotestoreenabled,keycloak.connectionsinfinispan.default.remotestorehost,keycloak.connectionsinfinispan.default.remotestoreport,keycloak.connectionsinfinispan.default.sessionsowners,keycloak.connectionsinfinispan.default.sitename,keycloak.connectionsjpa.default.datasource,keycloak.connectionsjpa.default.formatsql,keycloak.connectionsjpa.default.globalstatsinterval,keycloak.connectionsjpa.default.initializeempty,keycloak.connectionsjpa.default.migrationstrategy,keycloak.connectionsjpa.default.showsql,keycloak.connectionsjpa.provider,keycloak.eventslistener.jboss-logging.error-level,keycloak.eventslistener.jboss-logging.success-level,keycloak.eventsstore.provider,keycloak.hostname.default.adminurl,keycloak.hostname.default.forcebackendurltofrontendurl,keycloak.hostname.default.frontendurl,keycloak.hostname.provider,keycloak.jta-lookup.jboss.enabled,keycloak.jta-lookup.provider,keycloak.login-protocol.saml.knownprotocols[0],keycloak.login-protocol.saml.knownprotocols[1],keycloak.mapstorage.provider,keycloak.realm.provider,keycloak.realmcache.default.enabled,keycloak.role.provider,keycloak.scheduled.interval,keycloak.scripting,keycloak.theme.cachetemplates,keycloak.theme.cachethemes,keycloak.theme.folder.dir,keycloak.theme.folder.enabled,keycloak.theme.staticmaxage,keycloak.timer.provider,keycloak.user.provider,keycloak.usercache.default.enabled,keycloak.userfederatedstorage.provider,keycloak.usersessionpersister.provider,keycloak.x509cert-lookup.default.apache.certificatechainlength,keycloak.x509cert-lookup.default.apache.enabled,keycloak.x509cert-lookup.default.apache.sslcertchainprefix,keycloak.x509cert-lookup.default.apache.sslclientcert,keycloak.x509cert-lookup.default.enabled,keycloak.x509cert-lookup.default.haproxy.certificatechainlength,keycloak.x509cert-lookup.default.haproxy.enabled,keycloak.x509cert-lookup.default.haproxy.sslcertchainprefix,keycloak.x509cert-lookup.default.haproxy.sslclientcert,keycloak.x509cert-lookup.default.nginx.certificatechainlength,keycloak.x509cert-lookup.default.nginx.enabled,keycloak.x509cert-lookup.default.nginx.sslcertchainprefix,keycloak.x509cert-lookup.default.nginx.sslclientcert,keycloak.x509cert-lookup.provider] were left unbound.
Property: keycloak.authorizationpersister.provider
Value: jpa

` I suspect it because the configurations are the same, any pointers on what todo?

nmwael commented 3 years ago

further investigation tells med that it comes down to a conflict with spring boot keycloak adapters configuration key :"keycloak"

So both spring boot keycloak adapter and embedded keycloak relies on same configuration... in yaml, but totally different properties

nmwael commented 3 years ago

There might be an workaround using something else than KeycloakSpringBootConfigResolver

NelsonRuddy commented 2 years ago

further investigation tells med that it comes down to a conflict with spring boot keycloak adapters configuration key :"keycloak"

So both spring boot keycloak adapter and embedded keycloak relies on same configuration... in yaml, but totally different properties

im facing same problem how you solved it?