tree: 4d9a7106ecfe8029efd742aa9415145ea2433c7c [path history] [tgz]
  1. docs/
  2. plugin/
  3. README.md
plugin-oauth2/README.md

Spring Security OAuth2 Plugin

Main differences with the Grails 2 plugin:

Documentation

User Guide

Installation

For Grails 5.3+

Add the following dependencies in build.gradle

dependencies {
...
    implementation 'org.apache.grails:grails-spring-security:{revnumber}'
    implementation 'org.apache.grails:grails-spring-security-oauth2:{revnumber}'
...
}

You will also need at least one provider extension, i.e the grails-spring-security-oauth2-google plugin Change the version to reflect the actual version you would like to use.

You can configure the following parameters in your application.yml. This is fully optional

grails:
  plugin:
    springsecurity:
      oauth2:
        active: true    #whether the whole plugin is active or not
        registration:
          # The URI that is called to aks the user to either create a new account or link to an existing account
          askToLinkOrCreateAccountUri: '/oauth2/ask'
          # A list of role names that should be automatically granted to an OAuth User. The roles will be created if they do not exist 
          roleNames: [ 'ROLE_USER' ]

Once you have an User domain class, initialize this plugin by using the init script grails init-oauth2 <domain-class-package> <user-class-name> <oauthid-class-name> In example: grails init-oauth2 com.yourapp User OAuthID That will create the domain class com.yourapp.oAuthID

Finally add:

static hasMany = [oAuthIDs: OAuthID]

to your user domain class.

Extensions

List of known extension

How to create a new provider plugin

  1. Create a new plugin with grails create-plugin spring-security-oauth2-myProvider
  2. Add the following plugins as dependency in build.gradle:
    • compileOnly 'org.apache.grails:grails-spring-security:{revnumber}'
    • compileOnly 'org.apache.grails:grails-spring-security-oauth2:{revnumber}'
  3. Create a service in your plugin that extends OAuth2AbstractProviderService and implement the abstract methods. You can override the other methods for fine-tuning if needed.

License

Apache 2