2011-11-02 7 views
8

Mam scenariusz, w którym próbuję połączyć ochronę wiosenną z koszulką dla mojego interfejsu REST API.połączenie ochrony sprężyny 3 z oparciem dla koszulki

Moja potrzeba jest dość skomplikowany (chyba) i jest w następujący sposób:

Wiosna bezpieczeństwa jest używany do przechwytywania adresów URL i zmuszając podstawowego uwierzytelniania w celu uzyskania dostępu do zasobu REST. Wydaje się, że to dobrze, ponieważ używam klienta http do przetestowania tego.

Jednak to, co chcę zrobić, to uzyskać dostęp do obiektu użytkownika, który jest ładowany, aby sprawdzić dodatkowe uprawnienia, które zawiesza się użytkownik (obiekt mapy z flagami logicznymi, aby wskazać, czy właściwości obiektu są widoczne, czy nie). Kod, który ładuje działa, ale po upływie wiosny uwierzytelnia, w jaki sposób mam wtedy uzyskać dostęp do obiektu użytkownika w samej samej metodzie REST Resource? czy to możliwe?

Więc kroki są:

1) Klient wysyła wywołanie REST API Kontrole 2) przechwytuje Wiosna URL nazwy użytkownika i hasła dostarczonego w nagłówku http 3) sposób zasób reszta jest wtedy dostępny, jeżeli ważne poświadczenia są obecnie

Ale przed krokiem 3, chcę jakoś przekazać załadowany obiekt użytkownika do samej samej metody Zasobów, aby móc dalej stosować jakąś logikę, aby ograniczyć to, co użytkownik może zobaczyć na podstawie uprawnień, które załadowałem? ? czy to możliwe? Wydaje mi się, że widziałem gdzieś kod, który sprawdza Role Użytkowników, zanim metoda będzie dostępna za pomocą Spring i REST, ale jeśli ktoś ma jakieś linki lub pomysły, które byłyby doskonałe.

Pomóż, jeśli możesz. Dziękuję bardzo.

Odpowiedz

5

Rozwiązałem to za pomocą proxy o zakresie zapytań skonstruowanym przez fabrykę fasoli.

Pozwala to po prostu wstrzyknąć aktualnie uwierzytelnionego użytkownika do dowolnej fasoli zarządzanej w wiosennym rozmiarze, aw moim przypadku zasoby z Jersey należą do tej kategorii. Wstrzyknąłem mojego użytkownika do warstwy poniżej zasobów, ale to wszystko jest takie samo.

Someone else elegantly blogged the full solution here.

+0

dzięki @Derek troy-West. Spot na doskonałą odpowiedź, to właśnie zrobiłem. – user983022

+0

Bez obaw, nie ma za co. –

Powiązane problemy