package basicauthenticationexample; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.net.Authenticator; import java.net.PasswordAuthentication; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; import javax.xml.transform.stream.StreamSource; public class BasicAuthenticationExample { static class BasicAuthenticator extends Authenticator { String baName; String baPassword; private BasicAuthenticator(String baName1, String baPassword1) { baName = baName1; baPassword = baPassword1; } @Override public PasswordAuthentication getPasswordAuthentication() { System.out.println("Authenticating..."); return new PasswordAuthentication(baName, baPassword.toCharArray()); } }; public static void main(String[] args) throws IOException, JAXBException { //Set up authentication //Replace these strings with real values. //The double backslash is to escape the backslash character. //Ideally, these Strings would be populated through a secure dialog. String name = "domain\\name"; String password = "password"; Authenticator.setDefault(new BasicAuthenticator(name, password)); //Create a request object //Using Event Calendar Event List data list BizOps endpoint for this //example. EventCalendarEventListService.GetRowsRequest listRequestObj = new EventCalendarEventListService.GetRowsRequest(); EventCalendarEventListService.ObjectFactory objectFactoryEvCalEvLiSvc = new EventCalendarEventListService.ObjectFactory(); listRequestObj = objectFactoryEvCalEvLiSvc.createGetRowsRequest(); //JAXBContext for the request JAXBContext contextForRequest = JAXBContext.newInstance (EventCalendarEventListService.GetRowsRequest.class); //Marshaller for the request Marshaller m = contextForRequest.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //Writer for the request StringWriter st = new StringWriter(); m.marshal(listRequestObj, st); String listRequestStr = st.toString(); //Wrap the request message with SOAP elements and XML declaration. listRequestStr = MessageAdjustments.fixSOAPRequestMessage(listRequestStr); //String for the endpoint //Don't forget to adjust for the square brackets. //For this example, use the Event Calendar Event List BizOps endpoint //on an Infinity applciation that uses Basic authentication String urlString = "URL string"; //This will send the message and place the SOAP reply message in a //String. String listReplyStr = HttpURLConnectionTechnique.createHttpURLConnectionAndMakeRequest (listRequestStr, urlString); //Remove the SOAP wrapping and XML declaration from the reply message. listReplyStr = MessageAdjustments.stripSOAPReplyMessage(listReplyStr); //Create a reply object. EventCalendarEventListService.GetRowsReply listReplyObj = new EventCalendarEventListService.GetRowsReply(); listReplyObj = objectFactoryEvCalEvLiSvc.createGetRowsReply(); //JAXBContext for the the reply JAXBContext contextForReply = JAXBContext.newInstance (EventCalendarEventListService.GetRowsReply.class); //Unmarshaller for the reply Unmarshaller u = contextForReply.createUnmarshaller(); StringBuilder xmlStr = new StringBuilder(listReplyStr); //Unmarshal the reply string into the Java object for the reply. listReplyObj = (EventCalendarEventListService.GetRowsReply) u.unmarshal (new StreamSource( new StringReader(xmlStr.toString()))); //Output window System.out.println(listRequestStr); System.out.println("\nReply message:\n"); System.out.println(listReplyStr); //Print out information about the reply. Total rows chosen because //printing row information if no rows are returned would generate an //exception. This isn't an exception handling example. System.out.print("\nTotal rows in reply: "); System.out.println (listReplyObj.getTotalRowsInReply()); } }