5 Customization - Reference Documentation
Authors: Igor Artamonov (igor@artamonov.ru)
Version: 0.17
Table of Contents
5 Customization
5.1 Using FacebookAuthService
How it works
If you need to add some specific logic to default plugin behaviour you have to create your own service called `FacebookAuthService`. Plugin will check for know methods of this service, and if they're exist - use them instead of own.It's some kind of extending an abstract class. You don't need to create all methods, just what you need.Used objects:- <FacebookUser> - domain class for your facebook user. It's your own class, can have other name, it's just a example
- <Person> - general user, used by Spring Security. It's your own class, can have other name, it's just a example
- FacebookAuthToken - token provided by plugin
Take a look at sources
Please, take a look at sources of DefaultFacebookAuthDao to understand how it works, and which methods you can use for customizationList of possible methods:
void onCreate(<FacebookUser> user, FacebookAuthToken token)
Called after user was created by plugin, just before saving into database. You can fill user object with some extra values.Not called if you have implemented methodcreate(..)
Where:
- user - your domain for Facebook User
- token - com.the6hours.grails.springsecurity.facebook.FacebookAuthToken
void afterCreate(<FacebookUser> user, FacebookAuthToken token)
Called after user was created by plugin, and when it's already saved into database.Not called if you have implemented methodcreate(..)
Where:
- user - your domain for Facebook User
- token - com.the6hours.grails.springsecurity.facebook.FacebookAuthToken
<FacebookUser> findUser(long uid)
Called when facebook user is authenticated (on every request), must return existing instance for specified facebook uid, if exits. If doesn't - return nullWhere:- uid - facebook user id
<FacebookUser> create(FacebookAuthToken token)
Called when we have a new facebook user, called on first login to create all required data structures.Where:- token - com.the6hours.grails.springsecurity.facebook.FacebookAuthToken
- createAppUser
- prepopulateAppUser
- onCreate
- afterCreate
- createRoles
<Person> createAppUser(<FacebookUser> user, FacebookAuthToken token)
Called when we have a new facebook user, called on first login to create main app User domain (when we store Facebook User details in different domain).Not called if you have implemented methodcreate(..)
Where:
- user - your domain for Facebook User
- token - com.the6hours.grails.springsecurity.facebook.FacebookAuthToken
void createRoles(<FacebookUser> user)
Called when we have a new facebook user, called on first login to create roles list for new userWhere:- user - your domain for Facebook User
def getPrincipal(<FacebookUser> user)
Must return object to store in security context for specified facebook user (can return itself)Where:- user - your domain for Facebook User
<FacebookUser> getFacebookUser(<Person> person)
Must return instance of your domain object for facebook user for specified person (if it's not a same object)Where:- person - your domain for <Person>
Collection<GrantedAuthority> getRoles(<Person> user)
Must return roles list for specified userWhere:- user - your domain for Facebook User
void prepopulateAppUser(<Person> person, FacebookAuthToken token)
Must return roles list for specified facebook userWhere:- person - your domain for <Person>
- token - com.the6hours.grails.springsecurity.facebook.FacebookAuthToken