2011-12-22 4 views
10

OAuth2ProtectedResourceFilter in org.springframework.security.oauth2.provider.filter:Cosa significa ResourceId a OAuth 2.0 con Primavera di sicurezza

Collection<String> resourceIds = auth.getClientAuthentication().getResourceIds(); 
if (resourceIds!=null && !resourceIds.isEmpty() && !resourceIds.contains(resourceId)) { 
    throw new InvalidTokenException("Invalid token does not contain resource id ("+resourceId+"): " + token);     
} 

penso che non è utile. Che cosa controlla questo codice?

risposta

0

Sembra che controlli se un client è autorizzato a visualizzare una particolare risorsa. Non sono sicuro di come sia coinvolta la variabile token, sembra che ci sia un codice più pertinente che non hai mostrato.

3

Sulla base di ciò che ho raccolto, è l'id del servizio risorse.

Diventa più chiaro quando si considera la separazione del servlet del provider di token oauth e dei server di risorse allo scopo di eseguire il controllo delle versioni di API. Ad esempio, supponiamo che il Cliente A (cA) abbia accesso a api1 e che il Cliente B (cB) abbia accesso a api2, imposti questo accesso dettando nel tuo server di risorse xml per api1 che la sua risorsa-id = api1 e poi configuri i dettagli del tuo cliente per cA che hanno resourceIds = "api1", e allo stesso modo per [cB, api2].

Ciò ci consente di proteggere l'accesso API e di mantenere la sua dichiarazione di protezione separata, ad esempio, dalla dichiarazione dei ruoli del client.

+5

In che modo i resourceId differiscono dagli ambiti? – yankee