To authenticate with a JAVA client against a Content Server, you should first create all client proxys. This example can be used against a Servlet Container, like Tomcat. Here, it is assumed, that it runs on port 8080.
The creation of the proxys must be done manually by typing
wsimport -keep http://yourserver:8080/cws/services/Authentication?wsdl [add all services you want to use] jar cvfM webservices.jar com/opentext/*
Add the webservices.jar file in the build path of your Java application.
Then, use something like this to authenticate
String username = "[yourUser]"; String passsword = "[yourpassword]"; Authentication_Service authsrv = new Authentication_Service(); Authentication authclient = authsrv.getbasicHttpBindingAuthentication(); // the Token String authToken=null; // authenticate try { authToken = authclient.authenticateUser(username,password); } catch (SOAPFaultException e) { System.out.println("Failed! "+e.getFault().e.getFaultCode()+" : "+e.getMessage()); }
This will, if succesful, store the authenticaten token in the string authToken.
Use this token in this way:
DocumentManagement_Service docmanSrv = new DocumentManagement_Service(); DocumentManagement docman = docmanSrv.getbasicHttpDocumentManagement(); OTAuthentication otAuth = new OTAuthentication(); otAuth.setAuthenticationToken(authToken);
Now, we have to set the token manually in the SOAP header
try { final String API_NAMESPACE = "urn:api.ecm.opentext.com"; SOAPHeader header = MessageFactory.newInstance().createMessage().getSOAPPart().getEnvelope().getHeader(); SOAPHeaderElement authElement = header.addHeaderElement (new QName(API_NAMESPACE,"OPAuthentication")); SOAPElement authTokenElement = authElement.addChildElement (new QName(API_NAMESPACE, "AuthenticationToken")); authTokenElement.addTextNode (otAuth.getAuthenticationToken()); ((WSBindingProvider) docMan).setOutboundHeaders (Headers.create(otAuthElement)); } catch (SOAPExeption e) { [Print Error and return] } // now, we are ready to perform some functionality Node node = docman.getNode(nodeId);
- Login and get the auth token
- set the auth token in the SOAP header
- tell your services about the auth token in the SOAP header
- perform operations on the server
Do not forget to refresh the token before it gets invalid. We discuss the refesh in a later posting.