{"id":20648152,"url":"https://github.com/curityio/maven-archetypes","last_synced_at":"2025-04-16T14:54:00.571Z","repository":{"id":40304878,"uuid":"114375052","full_name":"curityio/maven-archetypes","owner":"curityio","description":"Archetypes for plugins to enable many extensibility use cases","archived":false,"fork":false,"pushed_at":"2025-03-31T11:54:02.000Z","size":525,"stargazers_count":4,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-05T00:24:54.594Z","etag":null,"topics":["archetype","authenticator","curity","maven","plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/curityio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-12-15T13:43:30.000Z","updated_at":"2025-03-31T11:54:00.000Z","dependencies_parsed_at":"2025-03-28T15:35:16.026Z","dependency_job_id":null,"html_url":"https://github.com/curityio/maven-archetypes","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fmaven-archetypes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fmaven-archetypes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fmaven-archetypes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/curityio%2Fmaven-archetypes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/curityio","download_url":"https://codeload.github.com/curityio/maven-archetypes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249252539,"owners_count":21238209,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archetype","authenticator","curity","maven","plugin"],"created_at":"2024-11-16T17:06:38.751Z","updated_at":"2025-04-16T14:54:00.565Z","avatar_url":"https://github.com/curityio.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Curity Maven Archetypes\n\n[![Quality](https://img.shields.io/badge/quality-production-green)](https://curity.io/resources/code-examples/status/)\n[![Availability](https://img.shields.io/badge/availability-binary-blue)](https://curity.io/resources/code-examples/status/)\n\nThis project provides Maven archetypes to help you quickly create a skeleton of a plug-in which can be used with the Curity\nIdentity Server. Currently, the following archetypes are available:\n\n* Alarms Handler\n* Authenticator:\n    * Vanilla\n    * OAuth- or OpenID-Connect-based\n    * Back-channel\n* Authentication Action\n* Authorization Manager\n* Claims Provider\n* Consentor:\n    * Consentor-based\n    * Signing Consentor-based\n* Data Access Provider\n* Email Sender\n* Event Listener\n* SMS Sender\n\nAll the archetypes are also available in Kotlin version.\n\nThe `oauth-authenticator-archetype` is a good one to use when creating an authenticator that communicates with an upstream\nOAuth or OpenID Connect provider. It includes a callback to obtain an authorization code from that provider and uses the\ncode to obtain a token from it to create the required `AuthenticaitonResult`. The `authentication-action-archetype` is a\ngood starting point for any other kind of authenticator. The Kotlin one is a good one to use if you'd like to program in\nthat language.\n\n## Install the Archetypes Locally\n\nTo install these archetypes, just issue the command `mvn install`.\n\n## Generate a new Plug-in Project\n\nTo create a simple authenticator that *does not* use OAuth or OpenID Connect, run the following command (after installing the archetypes):\n\n```bash\n$ mvn -B archetype:generate \\\n      -DarchetypeArtifactId=identityserver.plugins.archetypes.authenticator \\\n      -DarchetypeGroupId=io.curity \\\n      -DarchetypeVersion=4.0.0  \\\n      -DartifactId=hello-world \\\n      -DgroupId=com.example.curity \\\n      -DpluginName=HelloWorld \\\n      -Dversion=1.0.0-SNAPSHOT\n```\n\n(Substitute `groupId`, `artifactId` and `version` values accordingly.)\n\nSimilarly, to create a skeleton project that uses OAuth or OpenID Connect to authenticate to an upstream provider, run this command:\n\n```bash\n$ mvn -B archetype:generate \\\n      -DarchetypeArtifactId=identityserver.plugins.archetypes.oauth-authenticator \\\n      -DarchetypeGroupId=io.curity \\\n      -DarchetypeVersion=4.0.0  \\\n      -DartifactId=hello-world \\\n      -DgroupId=com.example.curity \\\n      -DpluginName=HelloWorld \\\n      -Dversion=1.0.0-SNAPSHOT\n```\n\nThe only difference in these two, is the `archetypeArtifactId`. Change the `archetypeArtifactId` to any other value to\ncreate an appropriate plugin. You can find the artifact IDs in the `pom.xml` file of each of the archetype.\n\nE.g. to create the Event Listener plugin, use this command:\n\n```bash\n$ mvn -B archetype:generate \\\n      -DarchetypeArtifactId=identityserver.plugins.archetypes.event-listener \\\n      -DarchetypeGroupId=io.curity \\\n      -DarchetypeVersion=4.0.0 \\\n      -DartifactId=hello-world \\\n      -DgroupId=com.example.curity \\\n      -DpluginName=HelloWorld \\\n      -Dversion=1.0.0-SNAPSHOT\n\n```\n\n### Generating Kotlin Plugins\n\nEvery archetype comes in two languages — Java and Kotlin. Once you know the `archetypeArtifactId` you can append it with `kotlin-` to generate a Kotlin version of the plugin stub. For example, to create an Event Listener plugin using Kotlin, use this command:\n\n```bash\n$ mvn -B archetype:generate \\\n      -DarchetypeArtifactId=identityserver.plugins.archetypes.kotlin-event-listener \\\n      -DarchetypeGroupId=io.curity \\\n      -DarchetypeVersion=4.0.0 \\\n      -DartifactId=hello-world \\\n      -DgroupId=com.example.curity \\\n      -DpluginName=HelloWorld \\\n      -Dversion=1.0.0-SNAPSHOT\n\n```\n\n## Read More\n\nTo learn more about writing plugins for the Curity Identity Server, see the [Getting Started with Plugins](https://curity.io/resources/learn/getting-started-plugins/) tutorial.\n\n## License\n\nThese archetypes are licensed under the [Apache v. 2 license](LICENSE).\n\n## Questions\n\nFor questions, contact Curity AB:\n\n\u003e info@curity.io\n\u003e\n\u003e https://curity.io\n\nCopyright (C) 2022 Curity AB.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurityio%2Fmaven-archetypes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcurityio%2Fmaven-archetypes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcurityio%2Fmaven-archetypes/lists"}