http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html

pac4j es un motor de Seguridad Java con licencia Apache 2 para autenticar, autorizar, obtener profile,… en cualquier aplicación web Java.

Pac4J está disponible para un gran número de frameworks: J2E, Spring Web MVC / Spring Boot, Play 2.x,Vertx, Spark, Java, Ratpack, Undertow, Jooby, Apache Shiro, Spring Security, CAS servery Knox (Hadoop)

Y soporta casi cualquier mecanismo de autorización/autenticación que se os ocurra:

De hecho pac4j ofrece unas guías para integrarlo con tu framework en sus guidelines.

Los conceptos principales de pac4j son:

1) Un client que representa un mecanismo de autenticación. Realiza el login y devuelve un profile. Hay clientes indirectos para autenticación UI y clientes directos para autenticación Web Service.

2) Un authorizer que realiza las autorizaciones sobre el profile del usuario o en el contexto web actual.is meant to check authorizations on the authenticated user profile or on the current web context

3) El "security filter" (u otro mecanismo para interceptar peticiones HTTP) que protege una URL comprobando si el usuario está autenticado y tiene permisos.

4) El "callback controller" que finaliza el proceso de autenticación para un cliente indirecto.

En este tutorial nos explican cómo autenticar con Facebook, Twitter o Google con pac4j de forma muy sencilla: http://www.pac4j.org/authenticatewithfacebooktwittergooglein5minutes.html