Jestem nowy w JAX-WS i jest coś, czego nie rozumiem.Uwierzytelnianie JAX-WS i BASIC, gdy nazwy użytkowników i hasła znajdują się w bazie danych
Dostępnych jest mnóstwo samouczków dotyczących konfiguracji zabezpieczeń JAX-WS, ale w większości przypadków BindingProvider.USERNAME_PROPERTY i BindingProvider.PASSWORD_PROPERTY są przechowywane w niektórych plikach .xml (w zależności od kontenera) są "zakodowane na stałe". I tego właśnie nie dostaję. Jak mogę uwierzytelnić klienta usługi WWW przez porównanie BindingProvider.USERNAME_PROPERTY i BindingProvider.PASSWORD_PROPERTY z nazwą użytkownika i hasłem w bazie danych? Próbowałem ustawienie BindingProvider.USERNAME_PROPERTY i BindingProvider.PASSWORD_PROPERTY po stronie klienta tak:
ShopingCartService scs = new ShopingCartService(wsdlURL, name);
ShopingCart sc = scs.getShopingCartPort();
Map<String, Object> requestContext = ((BindingProvider)sc).getRequestContext();
requestContext.put(BindingProvider.USERNAME_PROPERTY, userName);
requestContext.put(BindingProvider.PASSWORD_PROPERTY, password);
sc.someFunctionCall();
a następnie, po stronie serwera pobierania tak:
@Resource
WebServiceContext wsContext;
@WebMethod
public void someFunctionCall() {
MessageContext mc = wsContext.getMessageContext();
mc.get(BindingProvider.USERNAME_PROPERTY);
mc.get(BindingProvider.PASSWORD_PROPERTY);
}
ale zawsze null, Nie miałem „t założyć coś w XML, serwis internetowy działa dobrze, z wyjątkiem nie mogę dostać te zmienne :(
biegnę zarówno na Java 1.6, Tomcat 6 i JAX-WS.
Każda pomoc w uwierzytelnianiu użytkowników hasłami z bazy danych jest bardzo doceniana, Dzięki.
Próbowałem zostały również sprawdzanie BindingProvider.USERNAME_PROPERTY w SOAPHandler wciąż null. – ahoge