[keycloak-user] bootstrapping of keycloak for integration testing
Stian Thorgersen
stian at redhat.com
Thu May 15 04:46:43 EDT 2014
I'm sure it is, as that's how we get WildFly ourselves:
https://repository.jboss.org/nexus/index.html#nexus-search;quick~wildfly-dist
----- Original Message -----
> From: "Bill Burke" <bburke at redhat.com>
> To: keycloak-user at lists.jboss.org
> Sent: Monday, 12 May, 2014 3:35:42 PM
> Subject: Re: [keycloak-user] bootstrapping of keycloak for integration testing
>
> I don't know if it is kosher to do this. Need to ask our repo admins if
> it is ok to put up such a large distro in the maven repo.
>
> On 5/12/2014 5:38 AM, Nils Preusker wrote:
> > Hi,
> >
> > any news on KEYCLOAK-425 <https://issues.jboss.org/browse/KEYCLOAK-425>?
> >
> > Cheers,
> > Nils
> >
> >
> > On Thu, Apr 24, 2014 at 5:05 PM, Nils Preusker <n.preusker at gmail.com
> > <mailto:n.preusker at gmail.com>> wrote:
> >
> > Hi guys,
> >
> > just a quick question about
> > https://issues.jboss.org/browse/KEYCLOAK-425
> > (keycloak-wildfly-adapter-dist-1.0-alpha-3.zip not in JBoss Maven
> > Repository). Would you agree that this should be fixed/ the adapter
> > should be in the maven repo, or should I just create the keycloak
> > wildfly adapter myself with the maven dependency plugin in the build
> > of my integration test project?
> >
> > If you are planning to fix it, can you give an estimate when it will
> > be available?
> >
> > Cheers,
> > Nils
> >
> >
> > On Wed, Apr 23, 2014 at 1:12 PM, Nils Preusker <n.preusker at gmail.com
> > <mailto:n.preusker at gmail.com>> wrote:
> >
> > Great, thanks for the link Stian!
> >
> > --
> > Blog: www.nilspreusker.de <http://www.nilspreusker.de>
> >
> > > On Apr 23, 2014, at 12:58, Stian Thorgersen <stian at redhat.com
> > <mailto:stian at redhat.com>> wrote:
> > >
> > > In the future we may move our testsuite to Arquillian, as
> > this makes it possible for us to test the actual distribution of
> > Keycloak (on WildFly) rather than a "custom" server.
> > >
> > > For testing bearer-only services, you're right the simplest
> > solution would be to just create tokens manually. Have a look at
> > https://github.com/liveoak-io/liveoak/blob/master/modules/keycloak/src/test/java/io/liveoak/keycloak/TokenUtil.java,
> > which does exactly that.
> > >
> > > ----- Original Message -----
> > >> From: "Nils Preusker" <n.preusker at gmail.com
> > <mailto:n.preusker at gmail.com>>
> > >> To: keycloak-user at lists.jboss.org
> > <mailto:keycloak-user at lists.jboss.org>
> > >> Sent: Wednesday, 23 April, 2014 11:43:56 AM
> > >> Subject: Re: [keycloak-user] bootstrapping of keycloak for
> > integration testing
> > >>
> > >> Another question regarding keycloak artifacts in maven,
> > shouldn't
> > >> "keycloak-wildfly-adapter-dist" also be available? At least
> > this would make
> > >> it much easier to create a maven configuration that
> > bootstraps a Wildfly
> > >> instance with the keycloak adapter.
> > >>
> > >> I've looked at the integration test suite and find the
> > approach quite nice.
> > >> However, in order to re-use it I would currently have to
> > duplicate most of
> > >> the code (KeycloakServer, AbstractKeycloakRule etc.) since
> > it is in the test
> > >> directory of the keycloak-testsuite-integration module.
> > >>
> > >> So I thought I'd do the following:
> > >>
> > >> * create an integration-test module
> > >> * bootstrap Wildfly with the wildfly adapter installed with the
> > >> maven-dependency-plugin and maven-resources-plugin
> > (currently struggling
> > >> with the missing artifacts in the repo here so I installed
> > it locally for
> > >> now...)
> > >> * deploy the auth-server.war/ keycloak-server.war and the
> > archives I want to
> > >> test in an arquillian test case (@Deploy...)
> > >>
> > >> That's where I'm at right now. I guess the next step would
> > be to get the
> > >> KeycloakSessionFactory in order to add a test realm
> > programmatically.
> > >>
> > >> However, I just realized that it might be better (and
> > easier) to just
> > >> bootstrap an embedded Keycloak instance (no server, just the
> > core services)
> > >> and use it to create a test realm and create tokens that can
> > be used in the
> > >> test cases. After all, I just need a way to generate bearer
> > tokens to make
> > >> HTTP requests to the wars I would like to test. Any thoughts
> > on how I could
> > >> best accomplish that?
> > >>
> > >> Cheers,
> > >> Nils
> > >>
> > >>
> > >>
> > >>
> > >> On Wed, Apr 23, 2014 at 11:25 AM, Nils Preusker <
> > n.preusker at gmail.com <mailto:n.preusker at gmail.com> >
> > >> wrote:
> > >>
> > >>
> > >>
> > >> Thanks Marek, I've created a JIRA issue about the missing
> > war in the maven
> > >> repo: https://issues.jboss.org/browse/KEYCLOAK-424
> > >>
> > >> I'll have a look at the integration test suite and let you
> > know what I came
> > >> up with.
> > >>
> > >> Cheers,
> > >> Nils
> > >>
> > >>
> > >> On Wed, Apr 23, 2014 at 9:25 AM, Marek Posolda <
> > mposolda at redhat.com <mailto:mposolda at redhat.com> > wrote:
> > >>
> > >>
> > >>
> > >> Hi Nils,
> > >>
> > >>
> > >> On 22.4.2014 12:55, Nils Preusker wrote:
> > >>
> > >>
> > >>
> > >> Hi guys,
> > >>
> > >> I'm just setting up an integration test project for our
> > application and I'm
> > >> wondering what's the best way to bootstrap keycloak within it.
> > >>
> > >> I'm using arquillian for testing and I'm using the
> > maven-dependency-plugin
> > >> and maven-resources-plugin to put together a wildfly
> > instance with the
> > >> keycloak-wildfly-adapter.
> > >>
> > >> So far, that approach works nicely. However, I'm not quite
> > sure yet how to go
> > >> about
> > >>
> > >> * importing a realm and
> > >> * creating a bearer/ access token to use in the test cases
> > >>
> > >> One approach would be to deploy the auth-server.war (is
> > there a mvn
> > >> repository to pull it from?), POST the realm to the
> > respective URL of the
> > >> admin console and do the authentication the same way (POST
> > >>
> > http://localhost:8080/auth/rest/realms/TestRealm/tokens/grants/access
> > ).
> > >> Looks like it's not. The WAR is here just for Alpha1
> > >>
> > https://repository.jboss.org/nexus/content/groups/public/org/keycloak/keycloak-server/1.0-alpha-1-12062013/
> > >> but not for later releases, which looks like a bug IMO. Can
> > you create JIRA
> > >> for it? I think it won't be bad if release will include all
> > the artifacts
> > >> including docs and distribution stuff (like WAR and full
> > Wildfly appliance)
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> Alternatively, I suppose I could deploy a small helper war
> > or jar that
> > >> accesses the core services of keycloak to import the realm
> > and create test
> > >> access tokens (some convenience method like "createLogin()"
> > in a test
> > >> utility that is deployed with shrink wrap maybe).
> > >>
> > >> Which option do you recommend or is there a third one that
> > I'm missing?
> > >> Maybe it will be interesting for you that we have
> > integration testsuite
> > >>
> > https://github.com/keycloak/keycloak/tree/master/testsuite/integration
> > .
> > >> This testsuite is using embedded Undertow server and it
> > programmatically
> > >> deploys Keycloak server on it. You can take a look at
> > KeycloakServer class
> > >> and also at individual tests to see how it works. The point
> > is that it's
> > >> embedded, so test classes have access to
> > KeycloakSessionFactory inside
> > >> KeycloakSetup actions and so they can directly use the model
> > API to setup
> > >> needed things.
> > >>
> > >> For example in LoginTest, you can see that there is some
> > setup action, which
> > >> creates new user with usage of Keycloak model API:
> > >>
> > https://github.com/keycloak/keycloak/blob/master/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java#L54
> > >> and then there is selenium test, which verifies that this
> > user is able to
> > >> login:
> > >>
> > https://github.com/keycloak/keycloak/blob/master/testsuite/integration/src/test/java/org/keycloak/testsuite/forms/LoginTest.java#L114
> > >>
> > >> Maybe you can reuse some parts of our testsuite and
> > programmaticaly deploy
> > >> Keycloak server in similar way like it's done here (not sure
> > if it's
> > >> possible with Arquillian+Shrinkwrap+Wildfly, but I assume
> > that yes). If you
> > >> still don't have access to Keycloak model API, you can maybe
> > write some
> > >> selenium utils, which will do needed setup in KC admin
> > console UI...
> > >>
> > >> Another alternative might be that you will use 2 servers in
> > your testsuite.
> > >> Your wildfly server with adapter installed will be on
> > localhost:8080 (you
> > >> have it already running) and KC server will be on
> > localhost:8081 (You can
> > >> directly reuse our testsuite for setup this).
> > >>
> > >> Good luck and let me know if still having issues. Btw. we
> > don't have any
> > >> integration tests for admin console and real AS7 and Wildfly
> > adapters AFAIK.
> > >> So it would be nice if you can share your work once you have
> > your testsuite
> > >> up and running :-)
> > >>
> > >> Marek
> > >>
> > >>
> > >>
> > >>
> > >> Cheers,
> > >> Nils
> > >>
> > >>
> > >> _______________________________________________
> > >> keycloak-user mailing list keycloak-user at lists.jboss.org
> > <mailto:keycloak-user at lists.jboss.org>
> > >> https://lists.jboss.org/mailman/listinfo/keycloak-user
> > >>
> > >>
> > >>
> > >>
> > >> _______________________________________________
> > >> keycloak-user mailing list
> > >> keycloak-user at lists.jboss.org
> > <mailto:keycloak-user at lists.jboss.org>
> > >> https://lists.jboss.org/mailman/listinfo/keycloak-user
> >
> >
> >
> >
> >
> > _______________________________________________
> > keycloak-user mailing list
> > keycloak-user at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/keycloak-user
> >
>
> --
> Bill Burke
> JBoss, a division of Red Hat
> http://bill.burkecentral.com
> _______________________________________________
> keycloak-user mailing list
> keycloak-user at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-user
>
More information about the keycloak-user
mailing list