2009-10-20 12 views
10

W mojej WebService potrzebuję zarejestrować identyfikator dzwoniącego, ale wsContext.getUserPrincipal() zwraca wartość null, mimo że użytkownik został uwierzytelniony przy użyciu WS-Security z uwierzytelnianiem hasłem. Zgodnie z JavaDocs dla JAX-WS 2.1 WSContext.getUserPrincipal() powinien zwracać wartość null, jeśli użytkownik nie został uwierzytelniony.WSContext.getUserPrincipal() zwraca wartość null dla uwierzytelniania za pomocą skrótu hasła

Czy muszę coś zrobić w module obsługi bezpieczeństwa, aby ustawić główne użytkownika w WSContext? Dokumenty zdają się wskazywać, że odbywa się to automatycznie.

Używam stacka metra 1.1 (1.1.5 Myślę) ze stosem jax-ws 2.1.3 na Tomcat.

+0

Zastanawiam się, czy to działa teraz. W jednym z moich poprzednich projektów użyliśmy WSContext.getUserPrincipal() i to działało. Jednak wykonywaliśmy uwierzytelnianie HTTP Basic. –

+0

Metro 1.1 jest dość stare, może metro 1.4 rozwiązuje problem. Z drugiej strony, czy możesz tutaj dodać wszystkie swoje zrzuty WsContext? – korifey

Odpowiedz

1

Spróbuj powtórzyć wsContext.getMessageContext(). EntrySet() i wyświetlając wartości, czasami są tam, ale z jakiegoś powodu nie można ich odzyskać metodą getUserPrincipal().

W tym przypadku po prostu zabierz głównego bezpośrednio z tego miejsca i zostaw komentarz, że nie jest to bardzo przenośne.

+0

+1 za "zostaw komentarz do przyszłego ..." –

Powiązane problemy