(Quick Reference)
4 Configuration - Reference Documentation
Authors: Igor Artamonov (igor@artamonov.ru)
Version: 0.17
4 Configuration
Basic Configuration
Make sure that you have installed and configured spring-security-core plugin before this step.
Calling `grails s2-init-facebook` will make default configuration of plugin for you, make sure
that you have configuration in your `Config.groovy` like:
grails.plugin.springsecurity.facebook.domain.classname='<your FacebookUser domain>'
grails.plugin.springsecurity.facebook.secret = '<Facebook secret for your app>'
grails.plugin.springsecurity.facebook.appId = '<Facebooks's app ID>'
Or you can skip `grails s2-init-facebook` step, and make such configuration by yourself.
When you have valid configuration you can put Facebook Connect button in you GSP:
<facebookAuth:connect permissions="email,user_about_me"/>
You don't need to add anything else.
4.1 Facebook App Config
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.secret | must be specified |
grails.plugin.springsecurity.facebook.appId | must be specified |
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.permissions | 'email' |
For a list of all possible permissions see
https://developers.facebook.com/docs/reference/login/#permissions
4.2 Domains
Name | Default Value | Values |
---|
grails.plugin.springsecurity.facebook.domain.classname | 'FacebookUser' | |
grails.plugin.springsecurity.facebook.domain.appUserConnectionPropertyName | 'user' | |
domain.classname
- name of your domain class, used to store Facebook User details (uid, access_token, etc). Could be same as configured for Spring Security Core, or a own domain, just for Facebook User details.
If you're using own domain for Facebook user (a joined to main User) you should
specify
domain.appUserConnectionPropertyName
: it's how your domain class is related
to main (used by Spring Security Core) user domain. It's the name
of the property, usually defined as
static belongsTo = user: User
in your Facebook User domain class.
User creation/initialization
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.autoCreate.roles | 'ROLE_USER', 'ROLE_FACEBOOK' |
List of roles for user created by the plugin.
Button configuration
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.taglib.button.text | 'Login with Facebook' |
Button for Server Side authentication (default)
Standard
<img … />
will be used for button, with following extra configuration options:
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.taglib.button.img | an url for image distributed with plugin |
img
- url of a default image to use for button
Button for Client Side authentication
At this case a HTML button, provided by Facebook JS SDK, will be user.
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.taglib.language | 'en_US' |
language
- language for Facebook Javascript SDK. You could also pass this option as a lang
attribute for :connect
or :init
tags
4.4 Plugin Internals
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.autoCreate.enabled | true |
grails.plugin.springsecurity.facebook.autoCreate.roles | 'ROLE_USER', 'ROLE_FACEBOOK' |
- autoCreate.enabled - enable/disabled automatic creation of Application User for a new Facebook user (when FB user first time authenticates)
- autoCreate.roles - list of roles to set to a newly created user (if enabled)
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.host | '' |
Set a hostname of current app, could be used when user logged out, but FB didn't clear all cookies for domain. Note: it's
host name, not url. Like `example.com`
4.5 Authentication Types
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.filter.processUrl | '/j_spring_security_facebook_check' |
grails.plugin.springsecurity.facebook.filter.type | 'redirect' |
type
- type of authentication, can be transparent
, cookieDirect
, redirect
or json
.
You can specify list of filters as a list
'redirect', 'json'
or comma-separated string:
grails.plugin.springsecurity.facebook.filter.type='redirect,json'
Configuration for REDIRECT filter
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.filter.redirect.processUrl | not set |
grails.plugin.springsecurity.facebook.filter.redirect.redirectFromUrl | '/j_spring_security_facebook_redirect' |
grails.plugin.springsecurity.facebook.filter.redirect.failureHandler | not set |
grails.plugin.springsecurity.facebook.filter.redirect.successHandler | not set |
redirectFromUrl
- it's the url that will redirect user to special Facebook Authentication URL. You can put link to/redirect user to redirectFromUrl
when you want to use Facebook authentication. This url is used by default <facebook:connect />
button.
- if
filter.redirect.processUrl
is not then, then default filter.processUrl
will be used
failureHandler
- a name of the bean that implements AuthenticationFailureHandler
successHandler
- a name of the bean that implements AuthenticationSuccessHandler
Configuration for TRANSPARENT filter
NA
Configuration for COOKIEDIRECT filter
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.filter.cookieDirect.processUrl | not set |
grails.plugin.springsecurity.facebook.filter.cookieDirect.failureHandler | not set |
grails.plugin.springsecurity.facebook.filter.cookieDirect.successHandler | not set |
Configuration for JSON filter
Name | Default Value |
---|
grails.plugin.springsecurity.facebook.filter.json.processUrl | '/j_spring_security_facebook_json' |
grails.plugin.springsecurity.facebook.filter.json.type | 'json' |
grails.plugin.springsecurity.facebook.filter.json.methods | 'POST' |
type
could be json
(default) or jsonp
methods
- allowed HTTP methods. Notice that it's used only for JSON, for JSONP it will be forced to 'GET'