Apache Oltu Spring Security OAuth2 and Google Integration

£可爱£侵袭症+ 提交于 2019-12-23 17:36:18

问题


The reference being purely taken from following sites:-

  • http://syntx.io/integrating-your-java-spring-mvc-webapp-with-facebook-doing-the-oauth-dance/

  • http://www.oodlestechnologies.com/blogs/OAuth-2.0-implementation-in-Spring-Framework

I've developed String Security OAuth2 Facebook integration example, Now I'm looking forward to developed the Security OAuth2 Google (and later Github) integration example where AppID and Secret will be provided to get "access_token" and "refresh_token" etc to be used to access the protected resources like UserDetails etc..

So, first step will be register App on http://code.google.com/apis/console. So it gives me "Client ID" and "Client secret", also I've configured Redirect URI, Done !

Now I've started writing actual Apache OAuth client, but I'm not sure what parameters I need to provide (similarly I provide for Facebook Integration, those parameters were easily available on facebook,while doing google search, but not found for Google), Please provide me suggestions what values should be given for the following blank parameters -

I think I've provided enough information, so any guidance / help / links is appreciated.

OAuthClientRequest request = OAuthClientRequest
                .authorizationLocation("")
                .setClientId("3kT21Hlkzzt5eV1")
                .setRedirectURI("http://localhost:8080/apache-oltu/google/redirect")
                .setResponseType("")
                .setScope("")
                .buildQueryMessage();

The following code is developed for callback

private void getAccessToken(String authorizationCode) throws OAuthSystemException, OAuthProblemException {
        OAuthClientRequest request = OAuthClientRequest
                .tokenLocation("")
                .setGrantType()
                .setClientId("3kT21H5EO3zzt5eV1")
                .setClientSecret("1kT21Hdlkzzt5eV1")
                .setRedirectURI("http://localhost:8080/apache-oltu/google/redirect")
                .setCode()
                .buildBodyMessage();

Added the following code to get protected resources like user profile:

request= new OAuthBearerClientRequest("https://www.googleapis.com/auth/userinfo.profile").
                    setAccessToken(oAuthResponse.getAccessToken()).
                    buildQueryMessage();

回答1:


See here for a complete example:

http://mail-archives.apache.org/mod_mbox/oltu-user/201503.mbox/%3CA562FE5D3662044186474F4174F11DAE13044C639F@iowajhnex126.iowa.gov.state.ia.us%3E




回答2:


I've developed Apache Oltu and Spring integration example and it's working fine at my end.

You need to enable the Google+ API as suggested by @prtk_shah. Thanks.

You need to go to the https://console.developers.google.com/project?authuser=0 and click on your project, in my case it's "apache-oltu", in your open project find option "APIs and auth" --> APIs. search for Google+ API and enable it.

Here you should be able to see this screen.

So, I will modify your code below it should be like this:

(IMP) - Your client ID should be like this, For Ex: (755670439314-jcumfghnkmcm72hf40beikvoatknstml.apps.googleusercontent.com), Please make sure it is correct. Fyi - use as it is provided by google developer console

OAuthClientRequest request = OAuthClientRequest
                .authorizationLocation("https://accounts.google.com/o/oauth2/auth")
                .setClientId("3kT21Hlkzzt5eV1.apps.googleusercontent.com")
                .setRedirectURI("Give your projects redirect URI")
                .setResponseType("responsecode")
                .setScope("openId profile email")
                .buildQueryMessage();

The callback code should be:

private void getAccessToken(String authorizationCode) throws OAuthSystemException, OAuthProblemException {
        OAuthClientRequest request = OAuthClientRequest
                .tokenLocation("https://accounts.google.com/o/oauth2/token")
                .setGrantType(GrantType.AUTHORIZATION_CODE)
                .setClientId("give your complete client id")
                .setClientSecret("give your secret")
                .setRedirectURI("This will be your callback or Redirect URL (Give it correctly)")
                .setCode(authorizationCode)
                .buildBodyMessage();

Here is what I'm getting in my example, just wanted to show you

Hope this will be helpful.



来源:https://stackoverflow.com/questions/29461099/apache-oltu-spring-security-oauth2-and-google-integration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!