2012-11-09 8 views
5

Ho cercato qui un po 'ma non sono riuscito a trovare una risposta al mio problema.Utilizzo dell'API di Google con spring-security-oauth2.0

Implementare client oAuth con spring-sec-oAuth 2.0 (1.0.0.RC2a). Dopo aver impostato correttamente il bean.xml, ottengo felicemente un token valido e tutto sembra a posto. Quindi, voglio utilizzare le API di Calendar: non sono sicuro di come effettuare la chiamata per ottenere l'oggetto Calendar.

mio (rilevanti) Impostazioni: (primavera-servlet.xml)

<!--apply the oauth client context--> 
<oauth:client id="oauth2ClientFilter" /> 

<oauth:resource id="google" 
    type="authorization_code" 
    client-id="<my client id>" 
    client-secret="<my client secret>" 
    access-token-uri="https://accounts.google.com/o/oauth2/token" 
    user-authorization-uri="https://accounts.google.com/o/oauth2/auth" 
    scope="https://www.googleapis.com/auth/calendar" 
    client-authentication-scheme="form" 
    pre-established-redirect-uri="https://ohad.sealdoc.com/oauth2-client/hello" /> 

<bean id="googleClientService" class="com...GoogleClientServiceImpl"> 
    <property name="butkeDemoRestTemplate"> 
     <oauth:rest-template resource="google" /> 
    </property> 

e la classe di implementazione:

public class GoogleClientServiceImpl implements DemoService 
{ 
    private RestOperations butkeDemoRestTemplate; 

    @Override 
    public String getTrustedMessage() 
    { 
     String dataUri = "https://www.googleapis.com/calendar/v3/users/me/calendarList?minAccessRole=writer"; 

     Calendar service = butkeDemoRestTemplate.getForObject(dataUri, Calendar.class); 
     return "demo"; 
    } 

} 

In questo modo si conclude con:

Richiesta di trasformazione fallito; l'eccezione annidata è errore = "invalid_request", ERROR_DESCRIPTION = "{errors = [{domain = usageLimits, ragione = accessNotConfigured, message = Accesso Non configurato}], il codice = 403, messaggio = Accesso Non configurato}"

Definitivamente, sto facendo qualcosa di sbagliato nel mio "getTrustedMessage()", quindi mi sento di consultare gli esperti ... VOGLIO utilizzare OAuth2RestTemplate, ma come faccio a sapere l'URI che dovrei usare? Dopo aver cercato (Google), ho trovato solo esempi di codice Google, e usano Google oAuth (che non voglio usare - preferisco usare l'implementazione Spring per il mio cliente)

qualche idea?

+0

Potete per favore mi punto ad un bell'articolo in cui ho può implementare la mia applicazione OAuth basata su Spring Security e utilizzare Google come provider. Lo apprezzerei davvero. –

+1

@Anand penso che l'articolo migliore sia la pagina wiki Spring-Security-oAuth. ci sono tutti i dettagli della scrittura del tuo cliente e delle risorse protette, e il provider di identità sarà google, quindi devi configurare l'XML della risorsa protetta. https://github.com/SpringSource/spring-security-oauth/wiki/oauth2 – OhadR

+0

Come e quando l'utente viene reindirizzato alla pagina di consenso? Sto cercando di implementare la registrazione degli utenti utilizzando Oauth2 e Google come provider. http://stackoverflow.com/questions/20664846/user-registration-login-using-spring-security-oauth-2-0 –

risposta

Problemi correlati