Autenticación JAX-WS y BASIC, cuando los nombres de usuario y las contraseñas están en una base de datos

Soy nuevo en JAX-WS y hay algo que no entiendo.

Hay un montón de tutoriales disponibles sobre cómo configurar la seguridad de JAX-WS, pero en casi todos los casos BindingProvider.USERNAME_PROPERTY y BindingProvider.PASSWORD_PROPERTY se almacenan en algún archivo .xml (según el contenedor que creo) - están "codificados" es decir. Y eso es lo que no entiendo. ¿Cómo puedo autenticar un cliente de servicio web comparando BindingProvider.USERNAME_PROPERTY y BindingProvider.PASSWORD_PROPERTY con un nombre de usuario y contraseña que están en una base de datos? Intenté establecer BindingProvider.USERNAME_PROPERTY y BindingProvider.PASSWORD_PROPERTY en el lado del cliente de esta manera:

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

Y luego, en el lado del servidor recuperando así:

@Resource
WebServiceContext wsContext;

@WebMethod
public void someFunctionCall() {
    MessageContext mc = wsContext.getMessageContext();
    mc.get(BindingProvider.USERNAME_PROPERTY);
    mc.get(BindingProvider.PASSWORD_PROPERTY);
}

Pero siempre obtengo un valor nulo, no configuré nada en xml, el servicio web funciona bien, excepto que no puedo obtener esas variables :(

Estoy corriendo tanto en java 1.6, tomcat 6 yJAX-WS.

Cualquier ayuda con la autenticación de usuarios con contraseñas de una base de datos es muy apreciada, Gracias.

Respuestas a la pregunta(6)

Su respuesta a la pregunta