public void changePassword( String env, String cspName, String cspPassword, String cloudNameString, String currentPassword, String newPassword) { // Step 0: Set up CSP CloudNumber cspCloudNumber = null; String cspRegistryURL = ""; String cspUserURL = ""; XDIDiscoveryClient discoveryClient = null; String registrationSvcURL = ""; if (env.equalsIgnoreCase("prod")) { discoveryClient = XDIDiscoveryClient.NEUSTAR_PROD_DISCOVERY_CLIENT; cspRegistryURL = "https://mycloud.neustar.biz/" + cspName + "-registry"; cspUserURL = "https://mycloud.neustar.biz/" + cspName + "-users/"; registrationSvcURL = "https://registration.respectnetwork.net/registration"; } else if (env.equalsIgnoreCase("ote")) { discoveryClient = XDIDiscoveryClient.NEUSTAR_OTE_DISCOVERY_CLIENT; cspRegistryURL = "https://mycloud-ote.neustar.biz/" + cspName + "-registry"; cspUserURL = "https://mycloud-ote.neustar.biz/" + cspName + "-users/"; registrationSvcURL = "https://registration-stage.respectnetwork.net/registration"; } else if (env.equalsIgnoreCase("prod-au")) { discoveryClient = XDIDiscoveryClient.NEUSTAR_PROD_DISCOVERY_CLIENT; cspRegistryURL = "https://mycloud-au.neustar.biz/" + cspName + "-registry"; ; cspUserURL = "https://mycloud-au.neustar.biz/" + cspName + "-users/"; registrationSvcURL = "https://registration.respectnetwork.net/registration"; } System.out.println("CSP Resistry URL:" + cspRegistryURL); System.out.println("CSP User URL:" + cspUserURL); System.out.println("Regn. svc. URL:" + registrationSvcURL); System.out.println("Discovery info:" + discoveryClient.toString()); try { XDIDiscoveryResult discResult = discoveryClient.discover(XDIAddress.create("+" + cspName)); cspCloudNumber = discResult.getCloudNumber(); System.out.println("CSP Cloud Number : " + cspCloudNumber.toString()); } catch (Xdi2ClientException e) { System.out.println("Xdi2ClientException: " + e.getMessage()); e.printStackTrace(); } BasicCSPInformation cspInformation = new BasicCSPInformation( cspCloudNumber, cspRegistryURL, cspUserURL, cspPassword, null, CloudNumber.create("[+]!:uuid:ca51aeb9-e09e-4305-89d7-87a944a1e1fa"), registrationSvcURL, XDIAddress.create("([+]!:uuid:ca51aeb9-e09e-4305-89d7-87a944a1e1fa/#registrar)$do"), null, discoveryClient); System.out.println("CSP Information:\n" + cspInformation.toString()); cspInformation.setRnCspSecretToken(null); try { cspInformation.retrieveCspSignaturePrivateKey(); } catch (Xdi2ClientException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } catch (GeneralSecurityException e2) { // TODO Auto-generated catch block e2.printStackTrace(); } if (cspInformation.getCspSignaturePrivateKey() == null) { System.err.println("Invalid CSP Information."); System.exit(0); } cloudName = CloudName.create(cloudNameString); if (cloudName == null || !cloudNameString.startsWith("=")) { System.err.println("Invalid Cloud Name."); System.exit(0); } try { XDIDiscoveryResult discResult = discoveryClient.discover(XDIAddress.create(cloudNameString)); cloudNumber = discResult.getCloudNumber(); System.out.println("Cloud Number : " + cloudNumber.toString()); } catch (Xdi2ClientException e) { System.out.println("Xdi2ClientException: " + e.getMessage()); e.printStackTrace(); } try { CSP csp = new BasicCSP(cspInformation); // Step 1: authenticate user try { csp.authenticateInCloud(cloudNumber, currentPassword); } catch (Xdi2ClientException badpass) { System.out.println("Cannot authenticate. Exiting ..."); System.exit(0); } // Step 2: Change Secret Token csp.setCloudSecretTokenInCSP(cloudNumber, newPassword); // done System.out.println("Done Changing password for cloudname " + cloudNameString); } catch (RuntimeException ex1) { ex1.printStackTrace(); } catch (Xdi2ClientException ex2) { ex2.printStackTrace(); } }
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); String resultFormat = request.getParameter("resultFormat"); String writeImplied = request.getParameter("writeImplied"); String writeOrdered = request.getParameter("writeOrdered"); String writePretty = request.getParameter("writePretty"); String input = request.getParameter("input"); String endpoint = request.getParameter("endpoint"); String authority = request.getParameter("authority"); String services = request.getParameter("services"); String output = ""; String output2 = ""; String outputId = ""; String outputId2 = ""; String stats = "-1"; String error = null; Properties xdiResultWriterParameters = new Properties(); xdiResultWriterParameters.setProperty( XDIWriterRegistry.PARAMETER_IMPLIED, "on".equals(writeImplied) ? "1" : "0"); xdiResultWriterParameters.setProperty( XDIWriterRegistry.PARAMETER_ORDERED, "on".equals(writeOrdered) ? "1" : "0"); xdiResultWriterParameters.setProperty( XDIWriterRegistry.PARAMETER_PRETTY, "on".equals(writePretty) ? "1" : "0"); XDIWriter xdiResultWriter = XDIWriterRegistry.forFormat(resultFormat, xdiResultWriterParameters); XDIDiscoveryResult discoveryResultRegistry = null; XDIDiscoveryResult discoveryResultAuthority = null; Exception exceptionAuthority = null; // LoggingTrustManager loggingTrustManager = null; long start = System.currentTimeMillis(); long startRegistry = 0, stopRegistry = 0, startAuthority = 0, stopAuthority = 0; try { // start discovery XDIDiscoveryClient discoveryClient = new XDIDiscoveryClient(endpoint); discoveryClient.setDiscoveryCacheProvider(null); // from registry // loggingTrustManager = new LoggingTrustManager(); startRegistry = System.currentTimeMillis(); discoveryResultRegistry = discoveryClient.discoverFromRegistry(XDIAddress.create(input)); stopRegistry = System.currentTimeMillis(); // output result from registry StringWriter writer = new StringWriter(); if (discoveryResultRegistry != null) { writer.write( "Discovery result from registry: (" + Long.toString(stopRegistry - startRegistry) + " ms time" + ")\n\n"); /* if (loggingTrustManager.getBuffer().length() > 0) { writer.write(loggingTrustManager.getBuffer().toString() + "\n"); }*/ writer.write("Cloud Number: " + discoveryResultRegistry.getCloudNumber() + "\n"); writer.write( "Cloud Names: " + (discoveryResultRegistry.getCloudNames() == null ? null : Arrays.asList(discoveryResultRegistry.getCloudNames())) + "\n"); writer.write("XDI Endpoint URI: " + discoveryResultRegistry.getXdiEndpointUri() + "\n"); writer.write( "Default Endpoint URI: " + discoveryResultRegistry.getDefaultEndpointUri() + "\n"); writer.write( "Signature Public Key: " + discoveryResultRegistry.getSignaturePublicKey() + "\n"); writer.write( "Encryption Public Key: " + discoveryResultRegistry.getEncryptionPublicKey() + "\n"); if (discoveryResultRegistry.getEndpointUris().isEmpty()) { writer.write("Services: (none)\n"); } else { for (Map.Entry<XDIAddress, URI> endpointUri : discoveryResultRegistry.getEndpointUris().entrySet()) { writer.write("Service " + endpointUri.getKey() + ": " + endpointUri.getValue() + "\n"); } } writer.write("\n"); writer.write("Message envelope to registry:\n\n"); if (discoveryResultRegistry.getMessageEnvelope() != null) xdiResultWriter.write(discoveryResultRegistry.getMessageEnvelope().getGraph(), writer); else writer.write("(null)"); writer.write("\n\n"); writer.write("Message result from registry:\n\n"); if (discoveryResultRegistry.getMessagingResponse() != null) xdiResultWriter.write(discoveryResultRegistry.getMessagingResponse().getGraph(), writer); else writer.write("(null)\n"); } else { writer.write("No discovery result from registry.\n"); } // from authority if ("on".equals(authority)) { if (discoveryResultRegistry != null && discoveryResultRegistry.getXdiEndpointUri() != null) { // loggingTrustManager = new LoggingTrustManager(); String[] endpointUriTypesString = services.trim().isEmpty() ? new String[0] : services.trim().split("[, ]"); XDIAddress[] endpointUriTypes = new XDIAddress[endpointUriTypesString.length]; for (int i = 0; i < endpointUriTypes.length; i++) endpointUriTypes[i] = XDIAddress.create(endpointUriTypesString[i].trim()); try { startAuthority = System.currentTimeMillis(); discoveryResultAuthority = discoveryClient.discoverFromAuthority( discoveryResultRegistry.getXdiEndpointUri(), discoveryResultRegistry.getCloudNumber(), endpointUriTypes); stopAuthority = System.currentTimeMillis(); } catch (Exception ex) { exceptionAuthority = ex; discoveryResultAuthority = null; } } } // output result from authority StringWriter writer2 = new StringWriter(); if (discoveryResultAuthority != null) { writer2.write( "Discovery result from authority: (" + Long.toString(stopAuthority - startAuthority) + " ms time" + ")\n\n"); /* if (loggingTrustManager.getBuffer().length() > 0) { writer2.write(loggingTrustManager.getBuffer().toString() + "\n"); }*/ writer2.write("Cloud Number: " + discoveryResultAuthority.getCloudNumber() + "\n"); writer2.write( "Cloud Names: " + (discoveryResultAuthority.getCloudNames() == null ? null : Arrays.asList(discoveryResultAuthority.getCloudNames())) + "\n"); writer2.write("XDI Endpoint URI: " + discoveryResultAuthority.getXdiEndpointUri() + "\n"); writer2.write( "Default Endpoint URI: " + discoveryResultAuthority.getDefaultEndpointUri() + "\n"); writer2.write( "Signature Public Key: " + discoveryResultAuthority.getSignaturePublicKey() + "\n"); writer2.write( "Encryption Public Key: " + discoveryResultAuthority.getEncryptionPublicKey() + "\n"); if (discoveryResultAuthority.getEndpointUris().isEmpty()) { writer2.write("Services: (none)\n"); } else { for (Map.Entry<XDIAddress, URI> endpointUri : discoveryResultAuthority.getEndpointUris().entrySet()) { writer2.write("Service " + endpointUri.getKey() + ": " + endpointUri.getValue() + "\n"); } } writer2.write("\n"); writer2.write("Message envelope to authority:\n\n"); if (discoveryResultAuthority.getMessageEnvelope() != null) xdiResultWriter.write(discoveryResultAuthority.getMessageEnvelope().getGraph(), writer2); else writer2.write("(null)"); writer2.write("\n\n"); writer2.write("Message result from authority:\n\n"); if (discoveryResultAuthority.getMessagingResponse() != null) xdiResultWriter.write( discoveryResultAuthority.getMessagingResponse().getGraph(), writer2); else writer2.write("(null)"); } else if (exceptionAuthority != null) { writer2.write("Exception from authority: " + exceptionAuthority.getMessage() + "\n"); } else { writer2.write("No discovery result from authority.\n"); } output = StringEscapeUtils.escapeHtml(writer.getBuffer().toString()); output2 = StringEscapeUtils.escapeHtml(writer2.getBuffer().toString()); if (discoveryResultRegistry != null && discoveryResultRegistry.getMessagingResponse() != null) { outputId = UUID.randomUUID().toString(); OutputCache.put(outputId, discoveryResultRegistry.getMessagingResponse().getGraph()); } if (discoveryResultAuthority != null && discoveryResultAuthority.getMessagingResponse() != null) { outputId2 = UUID.randomUUID().toString(); OutputCache.put(outputId2, discoveryResultAuthority.getMessagingResponse().getGraph()); } } catch (Exception ex) { if (ex instanceof Xdi2ClientException) { MessagingResponse messagingResponse = ((Xdi2ClientException) ex).getMessagingResponse(); // output the message result if (messagingResponse != null) { StringWriter writer = new StringWriter(); xdiResultWriter.write(messagingResponse.getGraph(), writer); output = StringEscapeUtils.escapeHtml(writer.getBuffer().toString()); outputId = UUID.randomUUID().toString(); OutputCache.put(outputId, messagingResponse.getGraph()); } } log.error(ex.getMessage(), ex); error = ex.getMessage(); if (error == null) error = ex.getClass().getName(); } finally { /* LoggingTrustManager.disable(); try { XDI2X509TrustManager.enableTrustAll(); } catch (Exception ex) { throw new RuntimeException(ex.getMessage(), ex); }*/ } long stop = System.currentTimeMillis(); stats = ""; stats += Long.toString(stop - start) + " ms time. "; if (discoveryResultRegistry != null && discoveryResultRegistry.getMessagingResponse() != null) stats += Long.toString( discoveryResultRegistry .getMessagingResponse() .getGraph() .getRootContextNode(true) .getAllStatementCount()) + " result statement(s) from registry. "; if (discoveryResultAuthority != null && discoveryResultAuthority.getMessagingResponse() != null) stats += Long.toString( discoveryResultAuthority .getMessagingResponse() .getGraph() .getRootContextNode(true) .getAllStatementCount()) + " result statement(s) from authority. "; // display results request.setAttribute("sampleInputs", Integer.valueOf(sampleInputs.size())); request.setAttribute("resultFormat", resultFormat); request.setAttribute("writeImplied", writeImplied); request.setAttribute("writeOrdered", writeOrdered); request.setAttribute("writePretty", writePretty); request.setAttribute("input", input); request.setAttribute("endpoint", endpoint); request.setAttribute("authority", authority); request.setAttribute("services", services); request.setAttribute("output", output); request.setAttribute("output2", output2); request.setAttribute("outputId", outputId); request.setAttribute("outputId2", outputId2); request.setAttribute("discoveryResultRegistry", discoveryResultRegistry); request.setAttribute("discoveryResultAuthority", discoveryResultAuthority); request.setAttribute("stats", stats); request.setAttribute("error", error); request.getRequestDispatcher("/XDIDiscoverer.jsp").forward(request, response); }