Zum Inhalt

Apache CXF Client mit Basic Authentication

Ein einfacher Apache CXF Client mit Basic Authentication lässt sich mit ein paar Zeilen Java Code umsetzen.

Via maven lassen wir uns aus einer WSDL Datei einen Client generieren:

<plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>2.7.4</version>
    <executions>
        <execution>
            <id>generate-sources</id>
            <phase>generate-sources</phase>
            <configuration>
                <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                <wsdlOptions>
                    <wsdlOption>
                        <!-- hier eine valide WSDL Url angeben -->
                        <wsdl>https://www.denniswilmsmann.de/ws/soap/dummyservice?wsdl</wsdl>
                    </wsdlOption>
                </wsdlOptions>
            </configuration>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Und die dazugehörige Implementierung mit Basic Authentication (leicht gekürzt):

import javax.xml.ws.BindingProvider;

public class Client {

  public static void main(String[] args) {
    MyWebServiceImpl ws = new MyWebServiceImpl();
    MyWebServiceService client = ws.getMyWebServiceImplPort();

    BindingProvider portBP = (BindingProvider) client;
    portBP.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
    portBP.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");

    List<Result> results = client.getResult(true, 5.0, 1);

    System.out.println(results.size());
  }

}
Published inJava

Schreibe den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.