With 600 million users and counting, it's the new Internet. Yes, I'm talking about Facebook. Whether you love it or hate it, these days you have to have a Facebook strategy.
Tynamo-federatedaccounts is an add-on to tapestry-security module and provides and API and components for doing federated authentication, i.e. authenticating (your application) users with a third-party, such as Facebook, Twitter or Google. The most well-known protocol for this is Oauth. The module provides an authenticating realm for a each specific third-party, required components and pages for a particular federated authentication scheme. The module is designed to as light-weight and non-evasive with minimal amount of configuration. For example, for enabling simple authentication with Facebook in your (Hibernate) application, you only need to provide the following configuration:
FederatedAccountService is a light-weight interface, providing a bridge between your local user accounts and the remote account. The only operation in FederatedAccountService is:
The operation is designed to be invoked after a remote authentication has succeeded. "remotePrincipal" parameter is the username or user id in the remote system and the last parameter is an optional object describing the remote account. The current Facebook realm is using resfb and returns restfb User object as the remoteAccount. DefaultHibernateFederatedAccountServiceImpl tries to obtain the configured entity for this realm (see the configuration above) and saves or updates the entity after calling its merge(Object remoteAccount) operation.
The bare minimum for getting
Configuring tynamo-federatedaccounts is simple. First, add the following dependency to your pom.xml (the module has no dependencies to any other Tynamo module):
Then add the following:
And that's all! Note that the watchdog is automatically disabled in non-production mode.