These project provides Maven archetypes to help you quickly create a skeleton of a plug-in that can be used with the Curity Identity Server. Currently, the following archetypes are available:
- Vanilla authenticator
- A Kotlin-based authenticator
- OAuth- or OpenID-Connect-based authenticator
The latter is a good one to use when creating an authenticator that communicates with an upstream OAuth or OpenID Connect provider. It includes a callback to obtain an authorization code from that provider and handles the uses the token from it to create the required AuthenticaitonResult
. The first is a good starting point for any other kind of authenticator. The Kotlin one is a good one to use if you'd like to program in that language.
To install these archetypes, just issue the command mvn install
.
To create a simple authenticator that does not use OAuth or OpenID Connect, run the following command (after installing the archetypes):
$ mvn -B archetype:generate \
-DarchetypeArtifactId=identityserver.plugins.archetypes.authenticator \
-DarchetypeGroupId=io.curity \
-DarchetypeVersion=1.2.0 \
-DartifactId=hello-world \
-DgroupId=com.example.curity \
-DpluginName=HelloWorld \
-Dversion=1.0.0-SNAPSHOT
(Substitute groupId
, artifactId
and version
values accordingly.)
Similarly, to create a skeleton project that uses OAuth or OpenID Connect to authenticate to an upstream provider, run this command:
$ mvn -B archetype:generate \
-DarchetypeArtifactId=identityserver.plugins.archetypes.oauth-authenticator \
-DarchetypeGroupId=io.curity \
-DarchetypeVersion=1.2.0 \
-DartifactId=hello-world \
-DgroupId=com.example.curity \
-DpluginName=HelloWorld \
-Dversion=1.0.0-SNAPSHOT
The only difference in these two is the archetypeArtificateId
. Similar to these, change the archetypeArtificatId
to identityserver.plugins.archetypes.kotlin-authenticator
to generate an authenticator that uses Kotlin like this:
$ mvn -B archetype:generate \
-DarchetypeArtifactId=identityserver.plugins.archetypes.kotlin-authenticator \
-DarchetypeGroupId=io.curity \
-DarchetypeVersion=1.2.0 \
-DartifactId=hello-world \
-DgroupId=com.example.curity \
-DpluginName=HelloWorld \
-Dversion=1.0.0-SNAPSHOT
These archetypes are licensed under the Apache v. 2 license.
For questions, contact Curity AB:
Copyright (C) 2017 Curity AB.