HTTP Proxy Authentication  Locate

A WSO2 SOA Enablement Server client may need to access a service via a proxy server requiring authentication. The current version of WSO2 SOA Enablement Server lets the client authenticate through the proxy server with basic authentication as specified in RFC 2617.

Entering a username and password for HTTP(S) proxy authentication is very simple. Just specify the system properties http.proxyUserName (https.ProxyUserName) and http.proxyPassword (https.ProxyUserName). For example:

java "-Djava.security.auth.login.config=%WASP_HOME%\conf\jaas.config" "-Dhttp.proxyUserName=Mustafa"

"-Dhttp.proxyPassword=open sesame" demo.hello.HelloWorldClient

Lookup operations using ServiceClient.create(wsdlURL, contextData) and ServiceClient.createProxy(Class)) may also specify a username and password for proxy authentication. If the parameter contextData contains security properties defined in ServiceClientContext and WaspSecurity, these properties will be used and take a higher priority than the properties defined in the system properties. Example 7 shows how to look up the Deploy service if a client runs via a proxy requiring authentication:

Example 7. HTTP Proxy Authentication Using Lookup Properties

// Copyright 2001-2003 Systinet Corp. All rights reserved.
// Use is subject to license terms.
package example.security;

import org.systinet.wasp.admin.DeployService;
import org.systinet.wasp.webservice.CallContext;
import org.systinet.wasp.webservice.ServiceClient;

import java.util.HashMap;
import java.util.Map;


public class ProxyAuthentication {
    public static final String PROXY_USERNAME = "admin";
    public static final String PROXY_PASSWORD = "changeit";
    public static final String DEPLOY_URL =
        "http://localhost:6060/admin/DeployService";

    public static void main(String[] args) throws Exception {
        // prepare user name and password into the contextData
        Map contextData = new HashMap(2);
        contextData.put(CallContext.HTTP_PROXY_USER_NAME, PROXY_USERNAME);
        contextData.put(CallContext.HTTP_PROXY_PASSWORD, PROXY_PASSWORD);

        /*
         * lookup operation with the properties defining user 
         * name and password for http proxy
         */
        ServiceClient deployServiceClient =
            ServiceClient.create(DEPLOY_URL, contextData);
        DeployService deployService =
            (DeployService) deployServiceClient.createProxy(
                            DeployService.class);
    }
}