I'd like to create a web-application in Java that uses Google services both for initial authentication and API calls. (e.g. Google Calendar)
I want to stay away from Google Apps Engine, because of the overhead it creates and because of the requirements for a GAE project. Next to that I want to avoid the Google plus login button, because it isn't custom brandable.
For authentication I'd like to use OpenId and for the access to Google API's I'd like to use oAuth2.
Currently I have a working project using the most recent oAuth2 lib and code from : https://code.google.com/p/google-api-java-client/wiki/OAuth2
I'm using a light-weight OpenId library JOpenId for OpenId authentication.
The combination can be used to succesfully authenticate, but I have two main concerns:
- JOpenId is not actively maintained for over 2 years. The authentication mechanism outdated and incomplete (based on the issue section of the project)
- In the authentication process, the users needs to select his google account and grant permissions twice. This is confusing to the user and can be a problem if the user selects two different accounts in this process.
I've looked at Step2 (http://code.google.com/p/step2/) as an hybrid solution to combine Oauth2 and OpenId, but the project is very bloated with a big OpenId4Java library, GAE stuff and it uses maven dependencies that are not online anymore (e.g. Guice)
Are there other, cleaner, solutions that meet this project requirements? (Preferably a library that can combine OpenId and OAuth2, and is still maintained)