【问题标题】:Netbeans Basic Http Auth Jax-WSNetbeans 基本 Http 身份验证 Jax-WS
【发布时间】:2010-12-28 01:36:57
【问题描述】:

如何通过基本的 http 身份验证访问 Web 服务?我正在使用内置于 web 服务客户端功能的 netbeans。但是当我尝试访问 web 服务时,我收到了一个 401 auth failed 错误消息的异常。

如何传递正确的用户名和密码?

谢谢!

【问题讨论】:

    标签: web-services netbeans jax-ws webservice-client http-authentication


    【解决方案1】:

    您可以使用 BindingProvider 或 WSBindingProvider 类通过基本的 http 身份验证访问 Web 服务。 代码如下。

    XxxService service = new XxxService();
    Xxx port = service.getXxxPort();
    
    Map<String, Object> reqContext = ((BindingProvider)port).getRequestContext();
    reqContext.put(BindingProvider.USERNAME_PROPERTY, "username");
    reqContext.put(BindingProvider.PASSWORD_PROPERTY, "password");
    

    【讨论】:

    • 如果 WSDL 本身没有受到基本 Http 身份验证的保护,这将起作用
    • 为什么它对我不起作用?我有那个 AImpl aImplPort = new AImplService().getAImplPort(); BindingProvider prov = (BindingProvider) aImplPort; prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "fred"); prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "fred"); String b = aImplPort.b(); System.out.println(b); 它没有发送预期的授权 http 标头
    【解决方案2】:

    您也可以提供自己的身份验证器。这样,即使 WDSL 本身受到基本 HTTP 身份验证的保护,它也能正常工作。

    @WebServiceRef(wsdlLocation = "https://laka/sito?wsdl")
    static XxxService service;
    
    public static void main(String[] args) {
    
        Authenticator.setDefault(new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("user", "password".toCharArray());
            }
        });
    
        service = new XxxService();
        Xxx port = service.getXxxPort();
    
        // invoke webservice and print response
        XxxResponse resp = port.foo();
        System.out.println(resp.toString());
    
    }
    

    【讨论】:

    • 不知道java有这个特性。非常有帮助。谢谢!
    • 为什么它对我有用,reqContext.put(BindingProvider.USERNAME_PROPERTY, "username"); 方法与我的 java 版本无关?
    猜你喜欢
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-20
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    相关资源
    最近更新 更多