Access original session
by Christian Beikov
Hello there!"
I have an application that has protected resources on the pattern
"/protected/*" and I receive a session cookie for the path "/protected",
which makes sense. Now my problem is, that I want the path of the cookie
to be "/" so I can access the user information even outside of the
protected resources.
Since I think this might introduce some problems, the only other way to
realize that I could think of is, to get access to the underlying
servlet session. Not only would that session have to be created
properly, which I am not sure is happening when browsing in the
protected resources, I would also need to access it on the server, so
that I can save the currently logged in user into it.
Is there a possibility to access the servlet session within the Keycloak
context? If so, could you please share some code or point me to an API?
--
Mit freundlichen Grüßen,
------------------------------------------------------------------------
*Christian Beikov*
9 years, 10 months
logged in user not in application session listed
by Michael Gerber
Hi,
I use the REST WebService realms/{realm}/protocol/openid-connect/grants/access to grant access to resources protected by keycloak.
But these logged in users are not listed in the Application Sessions.
Is there any way to get all active sessions for a given application or realm?
kind regards
Michael
9 years, 11 months
Re: [keycloak-dev] [keycloak-user] Merry Christmas from the Keycloak team
by Stian Thorgersen
----- Original Message -----
> From: "prab rrrr" <prabhalar(a)yahoo.com>
> To: "Travis De Silva" <traviskds(a)gmail.com>, "Stian Thorgersen" <stian(a)redhat.com>
> Cc: "keycloak dev" <keycloak-dev(a)lists.jboss.org>, "keycloack-users" <keycloak-user(a)lists.jboss.org>
> Sent: Saturday, 20 December, 2014 1:32:38 PM
> Subject: Re: [keycloak-user] Merry Christmas from the Keycloak team
>
> Hi Stian - Thanks for sharing your roadmap for 2015. Really looking forward
> to see identity brokering and Openid Dynamic registration. Do you have any
> plans to support 1) FIDO specifications (UAT and U2F)?2) Any other NoSQL
> databases like Cassandra?
Most likely yes to FIDO, but most likely no to Cassandra or other DBs unless there's a lot of demand for it.
> Congratulations on a great product key cloak team and Happy holidays to all
> of you.
> Raghu
> From: Travis De Silva <traviskds(a)gmail.com>
> To: Stian Thorgersen <stian(a)redhat.com>
> Cc: keycloak dev <keycloak-dev(a)lists.jboss.org>; keycloack-users
> <keycloak-user(a)lists.jboss.org>
> Sent: Tuesday, December 16, 2014 6:40 AM
> Subject: Re: [keycloak-user] Merry Christmas from the Keycloak team
>
> Congratulations and thank you to the entire KeyCloak team. This is a great
> project and wishing it gets better and better over the course of next year.
> Merry Christmas and Happy New Year to everyone.
>
>
> On Tue, Dec 16, 2014 at 10:38 PM, Stian Thorgersen <stian(a)redhat.com> wrote:
>
> 2014 was the year of Keycloak! At least that was the case for us on the
> Keycloak team. In January we released the very first alpha of the project.
> The first stable release wasn’t out until September, but in return we added
> a lot more features as well as reaching a very high level of stability for a
> 1.0.
>
> Since then we’ve delivered a number of security and bug fixes for 1.0, while
> continuing to bake in new exiting features for 1.1. We’re planning to do a
> stable release of 1.1 early in the New Year, which will bring SAML 2, much
> improved clustering and a number of new application adapters.
>
> Not only have we managed to provide a feature rich and easy to use open
> source security solution, but we’ve also managed to build an awesome
> community around the project. We’ve had over 5000 downloads, over 2500
> commits from 32 contributors and our developer and user mailing lists are
> very active. Keycloak is already in use in production on a number of
> projects, in fact some has even used it in production since our first alpha
> release!
>
> Our road-map for 2015 is not written in stone, but expect at least some of
> the following features to be delivered in 2015:
>
> * Custom user profiles – this will let you configure the attributes for a
> user profile, which should be visible on the registration screen and
> account management, as well as specify validation
> * Identity Brokering – we’re adding support to authenticate with external
> Identity Providers via OpenID Connect, SAML 2.0 and Kerberos
> * Two-Factor Authentication – currently we only support Google
> Authenticator or FreeOTP applications for two-factor authentication, but
> we plan to make it possible to add your own and provide some more out of
> the box
> * Client Accounts – these will be special user accounts directly linked to
> a client, allowing a client to access services as itself not just
> on-behalf of users
> * Client Certificates – support authentication of clients with certificates
> * Client Types – at the moment we have applications and oauth clients, the
> main difference being oauth clients require users to grant permissions to
> roles. To simplify the admin console we plan to introduce a single unified
> view for clients and also introduce new types such as devices
> * Internationalization – internationalization support for login and account
> management pages
> * SMS – enable SMS to recover passwords, as a 2nd factor authentication
> mechanism and to be notified about events like login failures
> * OpenID Connect Dynamic Registration – allows clients to dynamically
> register with Keycloak. We’ll also look at passing the OpenID Connect
> Interop testing
> * Mapping of users and tokens – custom mapping of user profiles from
> external identity stores and tokens from external Identity Providers
>
> We also have ideas for some bigger features, but we’ll leave those as a
> surprise for 2015!
>
> Finally, I’d like to wish everyone a Merry Christmas and a Happy New Year.
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
>
>
> _______________________________________________
> keycloak-user mailing list
> keycloak-user(a)lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
>
>
9 years, 11 months
resource excludes in web.xml not working in latest master build
by Michael Gerber
Hi all,
I created today a build from the latest master branch and struggled with the following problem.
I've got some REST services which are excluded from keycloak, so I can access them without a logged in user. (see detail from web.xml)
The request body in these post rest services were always empty. I found out that my wildfly tried to authenticate all requests.
The tokenStore.saveRequest() method in the OAuthRequestAuthenticator class read the inputStream and so it was empty later on.
I dont understand why all my requests are authenticated, even when they are excluded through the web.xml file.
So, I added the following lines in the ServletKeycloakAuthMech class in the authenticate method: (see https://github.com/gerbermichi/keycloak/commit/1eaafcd3d9ad4082429ab5...)
if (!deployment.isConfigured() || !securityContext.isAuthenticationRequired()) {
return AuthenticationMechanismOutcome.NOT_ATTEMPTED;
}
This hack solved all my problems. Is this a bug and should i create a pull request? Or are there some problems in my project configuration?
Detail from my web.xml file:
<security-constraint>
<web-resource-collection>
<web-resource-name>Client WS</web-resource-name>
<url-pattern>/clientws/*</url-pattern>
</web-resource-collection>
<web-resource-collection>
<web-resource-name>Client Exchange WS</web-resource-name>
<url-pattern>/services/exchange/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>All</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>myRole</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>KEYCLOAK</auth-method>
<realm-name>myRealm</realm-name>
</login-config>
<security-role>
<role-name>myRole</role-name>
</security-role>
9 years, 11 months
Remaining work for 1.1.0.Final
by Stian Thorgersen
Before we start any new features we should release 1.1.0.Final. Are there any outstanding tasks not listed in JIRA:
https://issues.jboss.org/issues/?jql=project%20%3D%20KEYCLOAK%20AND%20res...
There's quite a lot of bugs associated with the release. I'd like us to try to get rid of as many as possible before releasing, so would be great if everyone can do some bug fixing before starting on features for 1.2.
Let's aim for a release shortly after we all return in the New Year.
----
Features for 1.2 includes:
* SAML redirect logout (KEYCLOAK-771, Bill)
* Custom user profiles (KEYCLOAK-311, Bill)
* Kerberos brokering (KEYCLOAK-828, Marek)
* LDAP enhancement (KEYCLOAK-886, Marek)
* OpenID Connect Interop Testing (KEYCLOAK-524, Pedro)
* OpenID Connect Discovery (KEYCLOAK-571, Pedro)
* OpenID Connect Dynamic Registration (KEYCLOAK-684, Pedro)
* OpenID Connect Session Management - review and finish missing parts (KEYCLOAK-451, Pedro)
* Fabric8 integration (Stian)
----
I've started creating JIRA's for tasks we defined at the F2F and I'll also create agile boards (or use labels) to make it easy to identify categories of tasks. Main plan is to make it easy for us to pull out for example all tasks related to EAP, IDM, etc.
I've also dropped the 1.x version. All tasks should now be scheduled for current version, the next version or not have a version associated with it.
9 years, 11 months
Database script for manual migration?
by Matthias Wessendorf
Hi,
I am wondering do you guys have a .sql script for going from '1.0-beta-4'
to '1.0.4.Final' ?
My motivation is updating the an instance of UPS 1.0.0.Final (was using
Keycloak-1.0-beta-4) to latest stable release candidate (1.0.3-SNAPSHOT,
which is using Keycloak-1.0.4.Final)
Deploying the new auth-server (that we build ourselfs), is giving me this
(with Postgres and MySQL)
13:32:29,191 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-15)
MSC000001: Failed to start service
jboss.undertow.deployment.default-server.default-host./auth:
org.jboss.msc.service.StartException in service
jboss.undertow.deployment.default-server.default-host./auth: Failed to
start service
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
[jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
[rt.jar:1.7.0_65]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
[rt.jar:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]
Caused by: java.lang.RuntimeException: Failed to construct public
org.jboss.aerogear.unifiedpush.keycloak.UpsKeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
at
org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:160)
at
org.jboss.resteasy.spi.ResteasyProviderFactory.createProviderInstance(ResteasyProviderFactory.java:2211)
at
org.jboss.resteasy.spi.ResteasyDeployment.createApplication(ResteasyDeployment.java:295)
at
org.jboss.resteasy.spi.ResteasyDeployment.start(ResteasyDeployment.java:236)
at
org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.init(ServletContainerDispatcher.java:112)
at
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.init(HttpServletDispatcher.java:36)
at
io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117)
at
org.wildfly.extension.undertow.security.RunAsLifecycleInterceptor.init(RunAsLifecycleInterceptor.java:79)
at
io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:103)
at
io.undertow.servlet.core.ManagedServlet$DefaultInstanceStrategy.start(ManagedServlet.java:220)
at
io.undertow.servlet.core.ManagedServlet.createServlet(ManagedServlet.java:125)
at
io.undertow.servlet.core.DeploymentManagerImpl.start(DeploymentManagerImpl.java:508)
at
org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:88)
at
org.wildfly.extension.undertow.deployment.UndertowDeploymentService.start(UndertowDeploymentService.java:72)
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
[jboss-msc-1.2.2.Final.jar:1.2.2.Final]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
[jboss-msc-1.2.2.Final.jar:1.2.2.Final]
... 3 more
Caused by: org.keycloak.models.ModelException:
javax.persistence.PersistenceException:
org.hibernate.PropertyAccessException: Null value was assigned to a
property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
at
org.keycloak.connections.jpa.PersistenceExceptionConverter.convert(PersistenceExceptionConverter.java:44)
at
org.keycloak.connections.jpa.PersistenceExceptionConverter.invoke(PersistenceExceptionConverter.java:34)
at com.sun.proxy.$Proxy128.find(Unknown Source)
at
org.keycloak.models.jpa.JpaRealmProvider.getRealm(JpaRealmProvider.java:51)
at
org.keycloak.models.cache.DefaultCacheRealmProvider.getRealm(DefaultCacheRealmProvider.java:173)
at
org.keycloak.services.managers.ApplianceBootstrap.bootstrap(ApplianceBootstrap.java:42)
at
org.keycloak.services.managers.ApplianceBootstrap.bootstrap(ApplianceBootstrap.java:33)
at
org.keycloak.services.resources.KeycloakApplication.setupDefaultRealm(KeycloakApplication.java:137)
at
org.jboss.aerogear.unifiedpush.keycloak.UpsKeycloakApplication.setupDefaultRealm(UpsKeycloakApplication.java:40)
at
org.keycloak.services.resources.KeycloakApplication.<init>(KeycloakApplication.java:86)
at
org.jboss.aerogear.unifiedpush.keycloak.UpsKeycloakApplication.<init>(UpsKeycloakApplication.java:35)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[rt.jar:1.7.0_65]
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
[rt.jar:1.7.0_65]
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[rt.jar:1.7.0_65]
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
[rt.jar:1.7.0_65]
at
org.jboss.resteasy.core.ConstructorInjectorImpl.construct(ConstructorInjectorImpl.java:148)
... 18 more
Caused by: javax.persistence.PersistenceException:
org.hibernate.PropertyAccessException: Null value was assigned to a
property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763)
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1694)
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1141)
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1068)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[rt.jar:1.7.0_65]
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[rt.jar:1.7.0_65]
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[rt.jar:1.7.0_65]
at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_65]
at
org.keycloak.connections.jpa.PersistenceExceptionConverter.invoke(PersistenceExceptionConverter.java:32)
... 32 more
Caused by: org.hibernate.PropertyAccessException: Null value was assigned
to a property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
at
org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:126)
at
org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:713)
at
org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:362)
at
org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:4718)
at
org.hibernate.engine.internal.TwoPhaseLoad.doInitializeEntity(TwoPhaseLoad.java:188)
at
org.hibernate.engine.internal.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:144)
at
org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.performTwoPhaseLoad(AbstractRowReader.java:244)
at
org.hibernate.loader.plan.exec.process.internal.AbstractRowReader.finishUp(AbstractRowReader.java:215)
at
org.hibernate.loader.plan.exec.process.internal.ResultSetProcessorImpl.extractResults(ResultSetProcessorImpl.java:140)
at
org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:138)
at
org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad(AbstractLoadPlanBasedLoader.java:102)
at
org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load(AbstractLoadPlanBasedEntityLoader.java:186)
at
org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:4126)
at
org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:503)
at
org.hibernate.event.internal.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:468)
at
org.hibernate.event.internal.DefaultLoadEventListener.load(DefaultLoadEventListener.java:213)
at
org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:275)
at
org.hibernate.event.internal.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:151)
at org.hibernate.internal.SessionImpl.fireLoad(SessionImpl.java:1070)
at org.hibernate.internal.SessionImpl.access$2000(SessionImpl.java:176)
at
org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load(SessionImpl.java:2551)
at org.hibernate.internal.SessionImpl.get(SessionImpl.java:955)
at
org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1110)
... 38 more
Caused by: java.lang.IllegalArgumentException: Can not set boolean field
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled to null value
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
[rt.jar:1.7.0_65]
at
sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
[rt.jar:1.7.0_65]
at
sun.reflect.UnsafeBooleanFieldAccessorImpl.set(UnsafeBooleanFieldAccessorImpl.java:80)
[rt.jar:1.7.0_65]
at java.lang.reflect.Field.set(Field.java:741) [rt.jar:1.7.0_65]
at
org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:122)
... 60 more
13:32:29,205 ERROR [org.jboss.as.controller.management-operation]
(Controller Boot Thread) JBAS014613: Operation ("deploy") failed - address:
([("deployment" => "auth-server.war")]) - failure description:
{"JBAS014671: Failed services" =>
{"jboss.undertow.deployment.default-server.default-host./auth" =>
"org.jboss.msc.service.StartException in service
jboss.undertow.deployment.default-server.default-host./auth: Failed to
start service
Caused by: java.lang.RuntimeException: Failed to construct public
org.jboss.aerogear.unifiedpush.keycloak.UpsKeycloakApplication(javax.servlet.ServletContext,org.jboss.resteasy.core.Dispatcher)
Caused by: org.keycloak.models.ModelException:
javax.persistence.PersistenceException:
org.hibernate.PropertyAccessException: Null value was assigned to a
property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
Caused by: javax.persistence.PersistenceException:
org.hibernate.PropertyAccessException: Null value was assigned to a
property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
Caused by: org.hibernate.PropertyAccessException: Null value was
assigned to a property of primitive type setter of
org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled
Caused by: java.lang.IllegalArgumentException: Can not set boolean
field org.keycloak.models.jpa.entities.RealmEntity.eventsEnabled to null
value"}}
Thanks,
Matthias
--
Matthias Wessendorf
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf
9 years, 11 months
Re: [keycloak-dev] Login with Access Token
by Christian Beikov
I am wondering how you do that. I know that there is a state parameter that
is added to the facebook login url, but I could just make an initial
request to keycloak to copy that, or did I understand something wrong?
2014-12-03 9:22 GMT+01:00 Stian Thorgersen <stian(a)redhat.com>:
> It's code that is currently changing as we're working on adding enterprise
> IdP's as well as social IdP's we have at the moment.
>
> I think the correct approach would be to use the direct grant api, which
> currently lets you exchange a username + password for a Keycloak token, we
> could add an option here to pass in a token from an external IdP to
> exchange for a internal Keycloak token. If you're interested in looking at
> the code look at OpenIDConnectService.grantAccessToken.
>
> There's no work-around that you can do due to security restrictions in
> Keycloak. Keycloak makes sure that the callback can only be called if it
> indeed made the original request.
>
> ----- Original Message -----
> > From: "Christian Beikov" <christian.beikov(a)gmail.com>
> > To: "Stian Thorgersen" <stian(a)redhat.com>
> > Sent: Wednesday, 3 December, 2014 9:11:55 AM
> > Subject: Re: [keycloak-dev] Login with Access Token
> >
> > Thanks for the quick answer. Could you maybe give me a hint on how I
> could
> > implement that in a quick-and-dirty way? Could I maybe do some iframe
> magic
> > in a hidden webview to do the login? I am not quite sure how the social
> > login works exactly. Facebook will redirect me back to the social
> callback
> > address after a login, but how does keycloak actually retrieve that
> access
> > token? If I knew that, I could maybe create a workaround for now and
> maybe
> > also contribute something? :)
> >
> > 2014-12-03 8:48 GMT+01:00 Stian Thorgersen <stian(a)redhat.com>:
> >
> > >
> > >
> > > ----- Original Message -----
> > > > From: "Christian Beikov" <christian.beikov(a)gmail.com>
> > > > To: keycloak-dev(a)lists.jboss.org
> > > > Sent: Tuesday, 2 December, 2014 6:58:42 PM
> > > > Subject: [keycloak-dev] Login with Access Token
> > > >
> > > > Hello!
> > > >
> > > > I am new to OAuth so sorry if my question is dumb.
> > > > I have an App which wants to provide a custom and Facebook login.
> Since
> > > many
> > > > people already have the Facebook App installed, I thought it might be
> > > better
> > > > to give them the native experience and use the Facebook SDK to
> implement
> > > the
> > > > login.
> > > > The problem now is, that I have the Access Token from the successful
> > > Facebook
> > > > login, but don't know how to properly login at the Keycloak server
> with
> > > > that.
> > > >
> > > > Any ideas on how to do that? Or is that even stupid and is there a
> better
> > > > way?
> > >
> > > Not at all a dumb question and we actually had someone else ask the
> same
> > > last week.
> > >
> > > Currently, Keycloak does not support this flow, but it something we may
> > > consider adding.
> > >
> > > > --
> > > >
> > > > Mit freundlichen Grüßen,
> > > >
> > > > Christian Beikov
> > > >
> > > > _______________________________________________
> > > > keycloak-dev mailing list
> > > > keycloak-dev(a)lists.jboss.org
> > > > https://lists.jboss.org/mailman/listinfo/keycloak-dev
> > >
> >
> >
> >
> > --
> >
> > Mit freundlichen Grüßen,
> >
> >
> > *Christian Beikov*Blazebit Design & Developing
> > http://www.blazebit.com
> >
>
--
Mit freundlichen Grüßen,
*Christian Beikov*Blazebit Design & Developing
http://www.blazebit.com
9 years, 11 months