小编aho*_*oge的帖子

当用户名和密码位于数据库中时,JAX-WS和BASIC身份验证

我是JAX-WS的新手,有一件事我不明白.

有很多关于如何设置JAX-WS安全性的教程,但几乎所有情况下BindingProvider.USERNAME_PROPERTY和BindingProvider.PASSWORD_PROPERTY都存储在一些.xml文件中(取决于我认为的容器) - 它们是"硬编码的"那是.这就是我没有得到的.如何通过将BindingProvider.USERNAME_PROPERTY和BindingProvider.PASSWORD_PROPERTY与数据库中的用户名和密码进行比较来验证Web服务客户端?我尝试在客户端设置BindingProvider.USERNAME_PROPERTY和BindingProvider.PASSWORD_PROPERTY,如下所示:

    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();
Run Code Online (Sandbox Code Playgroud)

然后,在服务器端检索如下:

@Resource
WebServiceContext wsContext;

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

但我总是得到null,我没有在xml中设置任何东西,web服务工作得很好,除了我不能得到那些变量:(

我在java 1.6,tomcat 6和JAX-WS上运行.

任何有关使用数据库中的密码验证用户的帮助都非常感谢,谢谢.

java jax-ws basic-authentication tomcat6

22
推荐指数
3
解决办法
10万
查看次数

标签 统计

basic-authentication ×1

java ×1

jax-ws ×1

tomcat6 ×1