private ICredential returnCredential(Map<String, String> credMap, String acctKey) throws InvalidCredentialException { ICredential credential; String userName = (String) credMap.get(acctKey + Constants.CREDENTIAL_USERNAME_SUFFIX); String password = (String) credMap.get(acctKey + Constants.CREDENTIAL_PASSWORD_SUFFIX); String appId = (String) credMap.get(acctKey + Constants.CREDENTIAL_APPLICATIONID_SUFFIX); String subject = (String) credMap.get(acctKey + Constants.CREDENTIAL_SUBJECT_SUFFIX); if (credMap.get(acctKey + Constants.CREDENTIAL_SIGNATURE_SUFFIX) != null) { String signature = (String) credMap.get(acctKey + Constants.CREDENTIAL_SIGNATURE_SUFFIX); credential = new SignatureCredential(userName, password, signature); ((SignatureCredential) credential).setApplicationId(appId); if (subject != null && subject.trim().length() > 0) { ThirdPartyAuthorization thirdPartyAuthorization = new SubjectAuthorization(subject); ((SignatureCredential) credential).setThirdPartyAuthorization(thirdPartyAuthorization); } } else if (credMap.get(acctKey + Constants.CREDENTIAL_CERTPATH_SUFFIX) != null) { String certPath = (String) credMap.get(acctKey + Constants.CREDENTIAL_CERTPATH_SUFFIX); String certKey = (String) credMap.get(acctKey + Constants.CREDENTIAL_CERTKEY_SUFFIX); credential = new CertificateCredential(userName, password, certPath, certKey); ((CertificateCredential) credential).setApplicationId(appId); if (subject != null && subject.trim().length() > 0) { ThirdPartyAuthorization thirdPartyAuthorization = new SubjectAuthorization(subject); ((CertificateCredential) credential).setThirdPartyAuthorization(thirdPartyAuthorization); } } else { throw new InvalidCredentialException( "The account does not have a valid credential type(signature/certificate)"); } return credential; }
public String getPayLoad() { // This method appends SOAP Headers to payload // if the credentials mandate soap headers if (payLoad == null) { payLoad = apiCallHandler.getPayLoad(); String header = null; if (credential instanceof SignatureCredential) { SignatureCredential sigCredential = (SignatureCredential) credential; SignatureSOAPHeaderAuthStrategy signatureSoapHeaderAuthStrategy = new SignatureSOAPHeaderAuthStrategy(); signatureSoapHeaderAuthStrategy.setThirdPartyAuthorization( sigCredential.getThirdPartyAuthorization()); header = signatureSoapHeaderAuthStrategy.generateHeaderStrategy(sigCredential); } else if (credential instanceof CertificateCredential) { CertificateCredential certCredential = (CertificateCredential) credential; CertificateSOAPHeaderAuthStrategy certificateSoapHeaderAuthStrategy = new CertificateSOAPHeaderAuthStrategy(); certificateSoapHeaderAuthStrategy.setThirdPartyAuthorization( certCredential.getThirdPartyAuthorization()); header = certificateSoapHeaderAuthStrategy.generateHeaderStrategy(certCredential); } payLoad = getPayLoadUsingSOAPHeader(payLoad, getNamespaces(), header); } return payLoad; }
/* * Returns a credential as configured in the application configuration */ private ICredential getCredentials() throws InvalidCredentialException, MissingCredentialException { ICredential returnCredential = null; CredentialManager credentialManager = new CredentialManager(this.configurationMap); returnCredential = credentialManager.getCredentialObject(apiUserName); if (accessToken != null && accessToken.trim().length() > 0) { // Set third party authorization to token // if token is sent as part of request call ThirdPartyAuthorization tokenAuth = new TokenAuthorization(accessToken, tokenSecret); if (returnCredential instanceof SignatureCredential) { SignatureCredential sigCred = (SignatureCredential) returnCredential; sigCred.setThirdPartyAuthorization(tokenAuth); } else if (returnCredential instanceof CertificateCredential) { CertificateCredential certCred = (CertificateCredential) returnCredential; certCred.setThirdPartyAuthorization(tokenAuth); } } return returnCredential; }
/** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub HttpSession session = request.getSession(); session.setAttribute("url", request.getRequestURI()); session.setAttribute( "relatedUrl", "<ul><li><a href='RequestPermissions'>RequestPermissions</a></li><li><a href='GetAccessToken'>GetAccessToken</a></li><li><a href='GetPermissions'>GetPermissions</a></li><li><a href='CancelPermissions'>CancelPermissions</a></li><li><a href='GetBasicPersonalData'>GetBasicPersonalData</a></li><li><a href='GetAdvancedPersonalData'>GetAdvancedPersonalData</a></li></ul>"); GetAdvancedPersonalDataRequest req = new GetAdvancedPersonalDataRequest(); /* * (Required) RFC 3066 language in which error messages are returned; by * default it is en_US, which is the only language currently supported. */ RequestEnvelope requestEnvelope = new RequestEnvelope("en_US"); req.setRequestEnvelope(requestEnvelope); /* * The attributes whose value you are requesting. You specify one or * more of the following URIs: * * http://axschema.org/birthDate - Date of birth * http://axschema.org/contact/postalCode/home - Postcode * http://schema.openid.net/contact/street1 - Street1 * http://schema.openid.net/contact/street2 - Street2 * http://axschema.org/contact/city/home - City * http://axschema.org/contact/state/home - State * http://axschema.org/contact/phone/default - Phone */ List<PersonalAttribute> lst = new ArrayList<PersonalAttribute>(); String check[] = request.getParameterValues("attr"); for (int i = 0; i < check.length; i++) { lst.add(PersonalAttribute.fromValue(check[i])); } PersonalAttributeList attribute = new PersonalAttributeList(); attribute.setAttribute(lst); req.setAttributeList(attribute); SignatureCredential cred = null; if (request.getParameter("accessToken") != null && request.getParameter("accessToken").length() > 0 && request.getParameter("tokenSecret") != null && request.getParameter("tokenSecret").length() > 0) { // The access token that identifies a set of permissions. // The secret associated with the access token. ThirdPartyAuthorization thirdPartyAuth = new TokenAuthorization( request.getParameter("accessToken"), request.getParameter("tokenSecret")); cred = new SignatureCredential( "jb-us-seller_api1.paypal.com", "WX4WTU3S8MY44S7F", "AFcWxV21C7fd0v3bYYYRCpSSRl31A7yDhhsPUU2XhtMoZXsWHFxu-RWy"); cred.setApplicationId("APP-80W284485P519543T"); cred.setThirdPartyAuthorization(thirdPartyAuth); } // ## Creating service wrapper object // Creating service wrapper object to make API call // Configuration map containing mode and other required configuration. // For a full list of configuration parameters refer in wiki page. // (https://github.com/paypal/sdk-core-java/wiki/SDK-Configuration-Parameters) PermissionsService service = new PermissionsService(Configuration.getAcctAndConfig()); try { // ## Making API call // Invoke the appropriate method corresponding to API in service // wrapper object GetAdvancedPersonalDataResponse resp = null; if (cred != null) { resp = service.getAdvancedPersonalData(req, cred); } else { resp = service.getAdvancedPersonalData(req); } response.setContentType("text/html"); if (resp != null) { session.setAttribute("RESPONSE_OBJECT", resp); session.setAttribute("lastReq", service.getLastRequest()); session.setAttribute("lastResp", service.getLastResponse()); if (resp.getResponseEnvelope().getAck().toString().equalsIgnoreCase("SUCCESS")) { Map<Object, Object> map = new LinkedHashMap<Object, Object>(); /* * Acknowledgement code. It is one of the following values: * * Success - The operation completed successfully. Failure - * The operation failed. Warning - Warning. * SuccessWithWarning - The operation completed * successfully; however, there is a warning message. * FailureWithWarning - The operation failed with a warning * message. */ map.put("Ack", resp.getResponseEnvelope().getAck()); Iterator<PersonalData> iterator = resp.getResponse().getPersonalData().iterator(); int index = 1; while (iterator.hasNext()) { PersonalData personalData = iterator.next(); /* * The attributes whose values you are requesting. You * specify one or more of the following URIs: * * http://axschema.org/namePerson/first - First name * http://axschema.org/namePerson/last - last name * http://axschema.org/contact/email - Email * http://schema.openid.net/contact/fullname - Full name * http://openid.net/schema/company/name - Business name * http://axschema.org/contact/country/home - Country * https://www.paypal.com/webapps/auth/schema/payerID - * Payer ID */ map.put("PersonalDataKey" + index, personalData.getPersonalDataKey().getValue()); // The value associated with the key map.put("PersonalDataValue" + index, personalData.getPersonalDataValue()); index++; } session.setAttribute("map", map); response.sendRedirect("Response.jsp"); } else { session.setAttribute("Error", resp.getError()); response.sendRedirect("Error.jsp"); } } } catch (OAuthException e) { // TODO: handle exception e.printStackTrace(); } catch (SSLConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidCredentialException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (HttpErrorException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidResponseDataException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ClientActionRequiredException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (MissingCredentialException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }