2011-12-22 8 views
10

OAuth2ProtectedResourceFilter w org.springframework.security.oauth2.provider.filter:Co RESOURCEID znaczy w OAuth 2.0 z wiosennym Bezpieczeństwa

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);     
} 

myślę, że to nie jest przydatne. Do czego służy ten kod?

Odpowiedz

0

Wygląda na to, że sprawdza, czy klient jest uprawniony do przeglądania określonego zasobu. Nie wiem, w jaki sposób zaangażowana jest zmienna tokena, wygląda na to, że istnieje jakiś bardziej odpowiedni kod, który nie został wyświetlony.

3

Na podstawie tego, co zebrałem, jest to identyfikator usługi zasobów.

Staje się jaśniejszy, gdy rozważa się oddzielenie serwletu dostawcy tokenu oautha od serwerów zasobów w celu uzyskania wersji api. Na przykład, powiedzmy, że klient A (cA) ma dostęp do api1, a klient B (cB) ma dostęp do api2, wymuszasz ten dostęp, dyktując w swoim xml dla serwera zasobów dla api1, że jego identyfikator zasobu = api1, a następnie konfigurujesz szczegóły swojego klienta dla cA, że mają one resourceIds = "api1", i podobnie dla [cB, api2].

Dzięki temu możemy chronić dostęp do aplikacji APi i przechowywać deklarację ochrony oddzielnie od, powiedzmy, deklaracji ról klienta.

+5

W jaki sposób identyfikatory zasobów różnią się od zakresów? – yankee