Enviar arquivo XML via WebService com autenticação de usuario

Boa tarde pessoal,
alguem poderia me dar uma luz, de como enviar um arquivo XML por meio de um webService para uma URL que exige autenticação de username e password ?
Eu consigo enviar o arquivo normalmente para uma outra URL que nao exige autenticação, com o seguinte trecho de codigo:

Primeiramente você tem que ver qual o tipo de autenticação que o WebService esta usando.

Autenticação de usuario e senha. Não precisa autenticar o proxy

Eu consegui fazer ele acessar a pagina, mas não consigo fazer ele enviar um XML para essa URL e obter a resposta. O codigo que eu acessei a pagina foi esse:

            URL url = new URL(host);
            URLConnection uc = url.openConnection();
            String userpass = "username" + ":" + "senha";
            String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
            uc.setRequestProperty("Authorization", basicAuth);
            InputStream in = uc.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String str = "";
            String strT = "";
            while ((strT = br.readLine()) != null) {
                str += strT;
            }
         System.out.println(srt);

Alguma ajuda?

Eu digo a autenticação do próprio WS, ela pode ser Single Sign On, Token ou qualquer outra…

É autenticação SSO, onde é preciso se logar apenas a primeira vez e depois permite eu acessar as outras paginas.

?

Para enviar o XML do request que eu monto sem autenticação eu consegui, da seguinte forma:

public EnviaXMLRequisicaoWS(XmlRequest xmlRequest, String url) throws MalformedURLException, IOException {
HttpClient client = new HttpClient();
PostMethod method = new PostMethod(url);
BufferedReader br = null;
method.addParameter("xml", xmlRequest.toString());
String resp = "";
        try {
            client.executeMethod(method);
            br = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream()));

            String readLine = "";
            while ((readLine = br.readLine()) != null) {
                resp += readLine;
            }
            System.out.println(resp);

        } catch (IOException ex) {
            Logger.getLogger(EnviaXMLRequisicaoWS.class.getName()).log(Level.SEVERE, null, ex);
        } finally {
            method.releaseConnection();
        }

}
}

Para autenticar a URL que eu estou querendo acessar eu fiz da seguinte forma e deu certo:

    public static void main(String[] args) throws Exception {

        try {

            URL url = new URL("url");
            URLConnection uc = url.openConnection();
            String userpass = "usernamen" + ":" + "password";
            String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
            uc.setRequestProperty("Authorization", basicAuth);
            InputStream in = uc.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String str = "";
            String strT = "";

            while ((strT = br.readLine()) != null) {
                str += strT;
            }
            System.out.println(str);
}
}

Porém quando eu tento enviar um XML para essa URL com autenticação eu nao consigo.
Alguém tem uma dica de como realizar isso simultaneamente? autenticar e enviar XML.

Vlw

Tem certeza que esse WS usa SSO com autenticação Basic ? Qual a mensagem de erro que você obtém ao fazer este request ?

O erro que está dando é:

[color=red]0 [main] INFO auth.AuthChallengeProcessor - basic authentication scheme selected
5 [main] INFO httpclient.HttpMethodDirector - No credentials available for BASIC ‘Secret’@www
[/color]