From 983007df0304368b5bc3e19eef79c9f26491fc5b Mon Sep 17 00:00:00 2001 From: monhaso <sonali.mohanty@ext.ec.europa.eu> Date: Thu, 3 Feb 2022 17:27:20 +0100 Subject: [PATCH] 1)All the changes made as per the comment 2)some locator and method got changed as some feature changes for expanding metadata --- .../pages/service_groups/ServiceGroupRow.java | 4 +- .../src/main/java/pages/users/UserPopup.java | 4 +- .../src/main/java/pages/users/UsersGrid.java | 38 +- .../main/java/utils/rest/SMPRestClient.java | 1015 ++++++++--------- 4 files changed, 472 insertions(+), 589 deletions(-) diff --git a/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupRow.java b/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupRow.java index d3458aa59..8975681de 100644 --- a/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupRow.java +++ b/smp-ui-tests/src/main/java/pages/service_groups/ServiceGroupRow.java @@ -18,13 +18,11 @@ public class ServiceGroupRow extends PageComponent { } -// private WebElement container; + @FindBy(tagName = "datatable-body-cell") protected List<WebElement> cells; - /*@FindBy(className = "table-button-expand") - private WebElement expandMetadata;*/ @FindBy(css = ".ng-star-inserted.datatable-icon-right") private WebElement expandMetadata; diff --git a/smp-ui-tests/src/main/java/pages/users/UserPopup.java b/smp-ui-tests/src/main/java/pages/users/UserPopup.java index 935f8a1cf..c6bc2a45a 100644 --- a/smp-ui-tests/src/main/java/pages/users/UserPopup.java +++ b/smp-ui-tests/src/main/java/pages/users/UserPopup.java @@ -47,10 +47,10 @@ public class UserPopup extends PageComponent { @FindBy(css = ".mat-form-field-infix > div.has-error") WebElement passMatchValidationError; - @FindBy(css = "mat-dialog-content > table > tbody > tr > td > button:nth-child(1)") + @FindBy(css = "mat-dialog-content > table > tr > td > button:nth-child(1)") WebElement okBtn; - @FindBy(css = "mat-dialog-content > table > tbody > tr > td > button:nth-child(2)") + @FindBy(css = "mat-dialog-content > table > tr > td > button:nth-child(2)") WebElement cancelBtn; @FindBy(css = "#role_id") diff --git a/smp-ui-tests/src/main/java/pages/users/UsersGrid.java b/smp-ui-tests/src/main/java/pages/users/UsersGrid.java index d2ef07e7c..0e4152495 100644 --- a/smp-ui-tests/src/main/java/pages/users/UsersGrid.java +++ b/smp-ui-tests/src/main/java/pages/users/UsersGrid.java @@ -29,49 +29,43 @@ public class UsersGrid extends BasicGrid { } public boolean isUserListed(String username) { - boolean end = false; - PaginationControls pagination = new PaginationControls(driver); pagination.skipToFirstPage(); - + List<UserRowInfo> rows; + int count = 0; do { - List<UserRowInfo> rows = getRows(); - + if (count != 0) { + pagination.goToNextPage(); + } + rows =getRows(); for (UserRowInfo row : rows) { if (row.getUsername().equalsIgnoreCase(username)) { return true; } } - - try { - pagination.goToNextPage(); - } catch (Exception e) { - } - } while (pagination.hasNextPage()); - + count++; + } + while (pagination.hasNextPage()); return false; } public int scrollToUser(String username) { - PaginationControls pagination = new PaginationControls(driver); pagination.skipToFirstPage(); - + List<UserRowInfo> rows; + int count = 0; do { - - List<UserRowInfo> rows = getRows(); + if(count!=0){ + pagination.goToNextPage(); + } + rows = getRows(); for (int i = 0; i < rows.size(); i++) { if (rows.get(i).getUsername().equalsIgnoreCase(username)) { return i; } } - try { - pagination.goToNextPage(); - } catch (Exception e) { - } - + count++; } while (pagination.hasNextPage()); - return -1; } diff --git a/smp-ui-tests/src/main/java/utils/rest/SMPRestClient.java b/smp-ui-tests/src/main/java/utils/rest/SMPRestClient.java index fb2b55547..c348b76b4 100644 --- a/smp-ui-tests/src/main/java/utils/rest/SMPRestClient.java +++ b/smp-ui-tests/src/main/java/utils/rest/SMPRestClient.java @@ -19,583 +19,474 @@ import javax.ws.rs.core.NewCookie; import java.net.HttpCookie; import java.net.URLDecoder; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; public class SMPRestClient { - private static Client client = Client.create(); - private static WebResource resource = client.resource(PROPERTIES.UI_BASE_URL); + private static Client client = Client.create(); + private static WebResource resource = client.resource(PROPERTIES.UI_BASE_URL); - public static ServiceGroup getServiceGroup(String url){ + public static ServiceGroup getServiceGroup(String url) { // downloading XML and parsing - XStream xstream = new XStream(new StaxDriver()); - xstream.ignoreUnknownElements(); - xstream.processAnnotations(ServiceGroup.class); - ServiceGroup serviceGroup = null; - try { - String tmp = client.resource(url).get(String.class); - serviceGroup = (ServiceGroup) xstream.fromXML(tmp); - } catch (Exception e) { - e.printStackTrace(); - } - return serviceGroup; - } - - - public static List<String> getDomainAndSubdomains(){ - List<String> domainList = new ArrayList<>(); - try { - String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST) - .queryParam("page", "-1") - .queryParam("pageSize", "-1") - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .get(String.class); - JSONArray restDomains = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - - for (int i = 0; i < restDomains.length(); i++) { - JSONObject currentDomain = restDomains.getJSONObject(i); - String currentDomainStr = currentDomain.getString("domainCode").trim(); - String currentSubdomainStr = "" + currentDomain.getString("smlSubdomain").trim().replaceAll("null", ""); - - String tmp = String.format("%s (%s)", currentDomainStr, currentSubdomainStr); - - domainList.add(tmp); - } - } catch (Exception e) { } - return domainList; - } - - public static String getDomainSubDomainCombo(String domainCode){ - List<String> allDomains = getDomainAndSubdomains(); - for (String allDomain : allDomains) { - if(allDomain.startsWith(domainCode + " ")){ - return allDomain; - } - } - return domainCode; - } - -/* public static Cookie login(String role){ - String authTemplate = "{\"username\": \"%s\", \"password\": \"%s\"}"; - TestDataProvider tdp = new TestDataProvider(); - Map<String, String> user = tdp.getUserWithRole(role); - String auth = String.format(authTemplate, user.get("username"), user.get("password")); - - Cookie session = resource.path(SMPPaths.LOGIN_PATH).accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON_TYPE) - .post(ClientResponse.class, auth).getCookies().get(1); - return session; - }*/ - - public static List<NewCookie> login(String role){ - String authTemplate = "{\"username\": \"%s\", \"password\": \"%s\"}"; - TestDataProvider tdp = new TestDataProvider(); - Map<String, String> user = tdp.getUserWithRole(role); - String auth = String.format(authTemplate, user.get("username"), user.get("password")); - - List<NewCookie> session = resource.path(SMPPaths.LOGIN_PATH).accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON_TYPE) - .post(ClientResponse.class, auth).getCookies();//.getCookies(); - return session; - } - - public static List<String> getSysAdmins() { - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String responseRaw = resource.path(SMPPaths.USER_LIST) - .queryParam("page", "-1") - .queryParam("pageSize", "-1") - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID", jsessionID)) - .cookie(new Cookie("XSRF-TOKEN", xsrf)) - .header("X-XSRF-TOKEN", xsrf) - .get(String.class); - JSONArray users = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - - List<String> sysadmins = new ArrayList<>(); - - for (int i = 0; i < users.length(); i++) { - JSONObject usr = users.getJSONObject(i); - if (usr.getString("role").equalsIgnoreCase("SYSTEM_ADMIN")) { - sysadmins.add(usr.getString("username")); - } - } - return sysadmins; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - public static List<String> getKeyStoreEntries(){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String responseRaw = resource.path(SMPPaths.KEYSTORE) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID", jsessionID)) - .cookie(new Cookie("XSRF-TOKEN", xsrf)) - .header("X-XSRF-TOKEN", xsrf) - .get(String.class); - JSONArray entries = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - - List<String> entryList = new ArrayList<>(); - - for (int i = 0; i < entries.length(); i++) { - String id = entries.getJSONObject(i).getString("certificateId"); - String alias = entries.getJSONObject(i).getString("alias"); - entryList.add(String.format("%s (%s)", alias, id)); - } - return entryList; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - - public static boolean createDomain(String domainCode){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; + XStream xstream = new XStream(new StaxDriver()); + xstream.ignoreUnknownElements(); + xstream.processAnnotations(ServiceGroup.class); + ServiceGroup serviceGroup = null; + try { + String tmp = client.resource(url).get(String.class); + serviceGroup = (ServiceGroup) xstream.fromXML(tmp); + } catch (Exception e) { + e.printStackTrace(); + } + return serviceGroup; + } + + public static HashMap<String, String> getCookies(List<NewCookie> cookies) { + HashMap<String, String> map = new HashMap<String, String>(); + int count = 0; + for (NewCookie cookie : cookies) { + if ("XSRF-TOKEN".equals(cookie.getName())) { + map.put("XSRF-TOKEN", cookie.getValue()); + count++; + } + if ("JSESSIONID".equals(cookie.getName())) { + map.put("JSESSIONID", cookie.getValue()); + count++; + } + if (count == 2) + break; + } + return map; + } + + + public static List<String> getDomainAndSubdomains() { + List<String> domainList = new ArrayList<>(); + try { + String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST) + .queryParam("page", "-1") + .queryParam("pageSize", "-1") + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .get(String.class); + JSONArray restDomains = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + + for (int i = 0; i < restDomains.length(); i++) { + JSONObject currentDomain = restDomains.getJSONObject(i); + String currentDomainStr = currentDomain.getString("domainCode").trim(); + String currentSubdomainStr = "" + currentDomain.getString("smlSubdomain").trim().replaceAll("null", ""); + + String tmp = String.format("%s (%s)", currentDomainStr, currentSubdomainStr); + + domainList.add(tmp); + } + } catch (Exception e) { + } + return domainList; + } + + public static String getDomainSubDomainCombo(String domainCode) { + List<String> allDomains = getDomainAndSubdomains(); + for (String allDomain : allDomains) { + if (allDomain.startsWith(domainCode + " ")) { + return allDomain; + } + } + return domainCode; + } + + + public static List<NewCookie> login(String role) { + String authTemplate = "{\"username\": \"%s\", \"password\": \"%s\"}"; + TestDataProvider tdp = new TestDataProvider(); + Map<String, String> user = tdp.getUserWithRole(role); + String auth = String.format(authTemplate, user.get("username"), user.get("password")); + + List<NewCookie> session = resource.path(SMPPaths.LOGIN_PATH).accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON_TYPE) + .post(ClientResponse.class, auth).getCookies();//.getCookies(); + return session; + } + + public static List<String> getSysAdmins() { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try { + String responseRaw = resource.path(SMPPaths.USER_LIST) + .queryParam("page", "-1") + .queryParam("pageSize", "-1") + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .get(String.class); + JSONArray users = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + + List<String> sysadmins = new ArrayList<>(); + + for (int i = 0; i < users.length(); i++) { + JSONObject usr = users.getJSONObject(i); + if (usr.getString("role").equalsIgnoreCase("SYSTEM_ADMIN")) { + sysadmins.add(usr.getString("username")); + } + } + return sysadmins; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static List<String> getKeyStoreEntries() { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try { + String responseRaw = resource.path(SMPPaths.KEYSTORE) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .get(String.class); + JSONArray entries = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + + List<String> entryList = new ArrayList<>(); + + for (int i = 0; i < entries.length(); i++) { + + + String id = entries.getJSONObject(i).getString("certificateId"); + String alias = entries.getJSONObject(i).getString("alias"); + entryList.add(String.format("%s (%s)", alias, id)); + } + return entryList; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public static boolean createDomain(String domainCode) { + List<NewCookie> cookies = login("SYS_ADMIN"); String template = "[{\"domainCode\":\"%s\",\"smlSubdomain\":\"%s\",\"smlSmpId\":\"%s\",\"smlClientKeyAlias\":\"%s\",\"signatureKeyAlias\":\"%s\",\"status\":2,\"smlClientCertHeader\":\"%s\"}]"; String domainPostStr = String.format(template, domainCode, domainCode, domainCode, domainCode, domainCode, domainCode); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); - try { - for (NewCookie cookie : cookies) { - if("XSRF-TOKEN".equals(cookie.getName())){ - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if("JSESSIONID".equals(cookie.getName())){ - jsessionID = cookie.getValue(); - break; - } - } + try { ClientResponse getResponse = resource.path(SMPPaths.REST_POST_DOMAIN) .accept(MediaType.APPLICATION_JSON_TYPE) .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) .put(ClientResponse.class, domainPostStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static boolean createUser(String username, String role){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static boolean createUser(String username, String role) { + List<NewCookie> cookies = login("SYS_ADMIN"); String template = "[{\"active\":true,\"username\":\"%s\",\"emailAddress\":\"\",\"password\":\"QW!@qw12\",\"confirmation\":\"\",\"role\":\"%s\",\"status\":2,\"statusPassword\":2,\"certificate\":{\"subject\":\"\",\"validFrom\":null,\"validTo\":null,\"issuer\":\"\",\"serialNumber\":\"\",\"certificateId\":\"\",\"fingerprints\":\"\"}}]"; String postStr = String.format(template, username, role); - - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - ClientResponse getResponse = resource.path(SMPPaths.USER_LIST) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, postStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static boolean createServiceGroup(String pi, String ps, List<String> usernames, List<String> domainCodes){ - String template = "[{\"id\":null,\"participantIdentifier\":\"%s\",\"participantScheme\":\"%s\",\"serviceMetadata\":[],\"users\":%s,\"serviceGroupDomains\":%s,\"extension\":\"\",\"status\":2}]"; - String xsrf = ""; - String jsessionID = ""; - try { - - JSONArray users = new JSONArray(); - for (String username : usernames) { - users.put(transformUserForSGPost(getUserForName(username))); - } - - JSONArray domains = new JSONArray(); - for (String codes : domainCodes) { - domains.put(transformDomainForSGPost(getDomainForName(codes))); - } - - - - String postStr = String.format(template, pi, ps, users.toString(), domains.toString()); - - List<NewCookie> cookies = login("SMP_ADMIN"); - - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, postStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static boolean createMetadata(String pi){ - String template = "{\"documentIdentifier\":\"%s\",\"documentIdentifierScheme\":\"%s\",\"smlSubdomain\":\"%s\",\"domainCode\":\"%s\",\"domainId\":%s,\"status\":2,\"xmlContentStatus\":2}"; - String xmlTemplate = "<ServiceMetadata xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"> <ServiceInformation> <ParticipantIdentifier scheme=\"%s\">%s</ParticipantIdentifier> <DocumentIdentifier scheme=\"%s\">%s</DocumentIdentifier> <ProcessList> <Process> <ProcessIdentifier scheme=\"[enterProcessType]\">[enterProcessName]</ProcessIdentifier> <ServiceEndpointList> <Endpoint transportProfile=\"bdxr-transport-ebms3-as4-v1p0\"> <EndpointURI>https://mypage.eu</EndpointURI> <Certificate>UGFzdGUgYmFzZTY0IGVuY29kZWQgY2VydGlmaWNhdGUgb2YgQVA=</Certificate> <ServiceDescription>Service description for partners</ServiceDescription> <TechnicalContactUrl>www.best-page.eu</TechnicalContactUrl> </Endpoint> </ServiceEndpointList> </Process> </ProcessList> </ServiceInformation> </ServiceMetadata>"; - String xsrf = ""; - String jsessionID = ""; - try { - JSONObject sg = getSGforPI(pi); - JSONObject domain = sg.getJSONArray("serviceGroupDomains").getJSONObject(0); - String domainCode = domain.getString("domainCode"); - String subdomain = domain.getString("smlSubdomain"); - String domainId = domain.getString("domainId"); - String docID = Generator.randomAlphaNumeric(5); - String docscheme = Generator.randomAlphaNumeric(5); - - String xmlContent = String.format(xmlTemplate, sg.getString("participantScheme"), pi, docscheme, docID); - - String postMeta = String.format(template, docID, docscheme, subdomain, domainCode, domainId); - - sg.getJSONArray("serviceMetadata").put(new JSONObject(postMeta).put("xmlContent", xmlContent)); - sg.put("status", 1); - - - List<NewCookie> cookies = login("SMP_ADMIN"); - - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, new JSONArray().put(sg).toString()); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static String getMetadataString(String url){ - try { - - System.out.println("url = " + url); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + ClientResponse getResponse = resource.path(SMPPaths.USER_LIST) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, postStr); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static boolean createServiceGroup(String pi, String ps, List<String> usernames, List<String> domainCodes) { + String template = "[{\"id\":null,\"participantIdentifier\":\"%s\",\"participantScheme\":\"%s\",\"serviceMetadata\":[],\"users\":%s,\"serviceGroupDomains\":%s,\"extension\":\"\",\"status\":2}]"; + + try { + + JSONArray users = new JSONArray(); + for (String username : usernames) { + users.put(transformUserForSGPost(getUserForName(username))); + } + + JSONArray domains = new JSONArray(); + for (String codes : domainCodes) { + domains.put(transformDomainForSGPost(getDomainForName(codes))); + } + + + String postStr = String.format(template, pi, ps, users.toString(), domains.toString()); + + List<NewCookie> cookies = login("SMP_ADMIN"); + + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, postStr); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static boolean createMetadata(String pi) { + String template = "{\"documentIdentifier\":\"%s\",\"documentIdentifierScheme\":\"%s\",\"smlSubdomain\":\"%s\",\"domainCode\":\"%s\",\"domainId\":%s,\"status\":2,\"xmlContentStatus\":2}"; + String xmlTemplate = "<ServiceMetadata xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\"> <ServiceInformation> <ParticipantIdentifier scheme=\"%s\">%s</ParticipantIdentifier> <DocumentIdentifier scheme=\"%s\">%s</DocumentIdentifier> <ProcessList> <Process> <ProcessIdentifier scheme=\"[enterProcessType]\">[enterProcessName]</ProcessIdentifier> <ServiceEndpointList> <Endpoint transportProfile=\"bdxr-transport-ebms3-as4-v1p0\"> <EndpointURI>https://mypage.eu</EndpointURI> <Certificate>UGFzdGUgYmFzZTY0IGVuY29kZWQgY2VydGlmaWNhdGUgb2YgQVA=</Certificate> <ServiceDescription>Service description for partners</ServiceDescription> <TechnicalContactUrl>www.best-page.eu</TechnicalContactUrl> </Endpoint> </ServiceEndpointList> </Process> </ProcessList> </ServiceInformation> </ServiceMetadata>"; + + try { + JSONObject sg = getSGforPI(pi); + JSONObject domain = sg.getJSONArray("serviceGroupDomains").getJSONObject(0); + String domainCode = domain.getString("domainCode"); + String subdomain = domain.getString("smlSubdomain"); + String domainId = domain.getString("domainId"); + String docID = Generator.randomAlphaNumeric(5); + String docscheme = Generator.randomAlphaNumeric(5); + + String xmlContent = String.format(xmlTemplate, sg.getString("participantScheme"), pi, docscheme, docID); + + String postMeta = String.format(template, docID, docscheme, subdomain, domainCode, domainId); + + sg.getJSONArray("serviceMetadata").put(new JSONObject(postMeta).put("xmlContent", xmlContent)); + sg.put("status", 1); + + + List<NewCookie> cookies = login("SMP_ADMIN"); + + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, new JSONArray().put(sg).toString()); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static String getMetadataString(String url) { + try { + + System.out.println("url = " + url); // ------------------------------ - return client.resource(url).accept(MediaType.APPLICATION_XML).get(String.class); - } catch (Exception e) { - e.printStackTrace(); - } - return ""; - } - - private static JSONObject getUserForName(String username){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String responseRaw = resource.path(SMPPaths.USER_LIST) - .queryParam("page", "-1") - .queryParam("pageSize", "-1") - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .get(String.class); - JSONArray users = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - - for (int i = 0; i < users.length(); i++) { - JSONObject usr = users.getJSONObject(i); - if(username.equalsIgnoreCase(usr.getString("username"))){ - return usr; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - private static JSONObject getDomainForName(String domainName){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST) - .queryParam("page", "-1") - .queryParam("pageSize", "-1") - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .get(String.class); - JSONArray domains = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - for (int i = 0; i < domains.length(); i++) { - JSONObject dom = domains.getJSONObject(i); - if(domainName.equalsIgnoreCase(dom.getString("domainCode"))){ - return dom; - } - } - } catch (Exception e) { - e.printStackTrace(); } - return null; - } - - private static JSONObject getSGforPI(String pi){ - List<NewCookie> cookies = login("SMP_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String responseRaw = resource.path(SMPPaths.SERVICE_GROUP) - .queryParam("page", "-1") - .queryParam("pageSize", "-1") - .queryParam("participantIdentifier", pi) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .get(String.class); - JSONArray sgs = new JSONObject(responseRaw).getJSONArray("serviceEntities"); - for (int i = 0; i < sgs.length(); i++) { - JSONObject sg = sgs.getJSONObject(i); - if(pi.equalsIgnoreCase(sg.getString("participantIdentifier"))){ - return sg; - } - } - } catch (Exception e) { - e.printStackTrace(); } - return null; - } - - public static boolean deleteDomain(String domainCode){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - try { - String domainPostStr = "[" + getDomainForName(domainCode).put("status", 3).toString() + "]"; - ClientResponse getResponse = resource.path(SMPPaths.REST_POST_DOMAIN) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, domainPostStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static boolean deleteUser(String username){ - List<NewCookie> cookies = login("SYS_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String putStr = "[" + getUserForName(username).put("status", 3).toString() + "]"; - ClientResponse getResponse = resource.path(SMPPaths.USER_LIST) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, putStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - public static boolean deleteSG(String pi){ - List<NewCookie> cookies = login("SMP_ADMIN"); - String xsrf = ""; - String jsessionID = ""; - try { - for (NewCookie cookie : cookies) { - if ("XSRF-TOKEN".equals(cookie.getName())) { - xsrf = cookie.getValue(); - break; - } - } - for (NewCookie cookie : cookies) { - if ("JSESSIONID".equals(cookie.getName())) { - jsessionID = cookie.getValue(); - break; - } - } - String putStr = "[" + getSGforPI(pi).put("status", 3).toString() + "]"; - ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) - .accept(MediaType.APPLICATION_JSON_TYPE) - .type(MediaType.APPLICATION_JSON_TYPE) - .cookie(new Cookie("JSESSIONID",jsessionID)) - .cookie(new Cookie("XSRF-TOKEN",xsrf)) - .header("X-XSRF-TOKEN",xsrf) - .put(ClientResponse.class, putStr); - - return getResponse.getStatus() == 200; - } catch (Exception e) { - e.printStackTrace(); - } - return false; - } - - - private static JSONObject transformUserForSGPost(JSONObject user){ - try { - String template = "{\"index\":%s,\"username\":\"%s\",\"role\":\"%s\",\"id\":%s,\"status\":0,\"password\":null,\"emailAddress\":null,\"authorities\":null,\"passwordChanged\":null,\"active\":true,\"certificate\":null,\"statusPassword\":0}"; - String index = user.getString("index"); - String username = user.getString("username"); - String role = user.getString("role"); - String id = user.getString("id"); - return new JSONObject(String.format(template, index, username, role, id)); - } catch (JSONException e) { - e.printStackTrace(); - } - return null; - } - - private static JSONObject transformDomainForSGPost(JSONObject domain){ - try { - String template = "{\"domainId\":%s,\"domainCode\":\"%s\",\"smlSubdomain\":\"%s\",\"id\":null,\"smlRegistered\":false,\"serviceMetadataCount\":0,\"status\":2}"; - String domainId = domain.getString("id"); - String domainCode = domain.getString("domainCode"); - String smlSubdomain = domain.getString("smlSubdomain"); - return new JSONObject(String.format(template, domainId, domainCode, smlSubdomain)); - } catch (JSONException e) { - e.printStackTrace(); - } - return null; - } + return client.resource(url).accept(MediaType.APPLICATION_XML).get(String.class); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + private static JSONObject getUserForName(String username) { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + String responseRaw = resource.path(SMPPaths.USER_LIST) + .queryParam("page", "-1") + .queryParam("pageSize", "-1") + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .get(String.class); + JSONArray users = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + + for (int i = 0; i < users.length(); i++) { + JSONObject usr = users.getJSONObject(i); + if (username.equalsIgnoreCase(usr.getString("username"))) { + return usr; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private static JSONObject getDomainForName(String domainName) { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + String responseRaw = resource.path(SMPPaths.REST_DOMAIN_LIST) + .queryParam("page", "-1") + .queryParam("pageSize", "-1") + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .get(String.class); + JSONArray domains = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + for (int i = 0; i < domains.length(); i++) { + JSONObject dom = domains.getJSONObject(i); + if (domainName.equalsIgnoreCase(dom.getString("domainCode"))) { + return dom; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + private static JSONObject getSGforPI(String pi) { + List<NewCookie> cookies = login("SMP_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + String responseRaw = resource.path(SMPPaths.SERVICE_GROUP) + .queryParam("page", "-1") + .queryParam("pageSize", "-1") + .queryParam("participantIdentifier", pi) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .get(String.class); + JSONArray sgs = new JSONObject(responseRaw).getJSONArray("serviceEntities"); + for (int i = 0; i < sgs.length(); i++) { + JSONObject sg = sgs.getJSONObject(i); + if (pi.equalsIgnoreCase(sg.getString("participantIdentifier"))) { + return sg; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static boolean deleteDomain(String domainCode) { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try { + String domainPostStr = "[" + getDomainForName(domainCode).put("status", 3).toString() + "]"; + ClientResponse getResponse = resource.path(SMPPaths.REST_POST_DOMAIN) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, domainPostStr); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static boolean deleteUser(String username) { + List<NewCookie> cookies = login("SYS_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + String putStr = "[" + getUserForName(username).put("status", 3).toString() + "]"; + ClientResponse getResponse = resource.path(SMPPaths.USER_LIST) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, putStr); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + public static boolean deleteSG(String pi) { + List<NewCookie> cookies = login("SMP_ADMIN"); + HashMap<String, String> map = getCookies(cookies); + String xsrf = map.get("XSRF-TOKEN"); + String jsessionID = map.get("JSESSIONID"); + try{ + String putStr = "[" + getSGforPI(pi).put("status", 3).toString() + "]"; + ClientResponse getResponse = resource.path(SMPPaths.SERVICE_GROUP) + .accept(MediaType.APPLICATION_JSON_TYPE) + .type(MediaType.APPLICATION_JSON_TYPE) + .cookie(new Cookie("JSESSIONID", jsessionID)) + .cookie(new Cookie("XSRF-TOKEN", xsrf)) + .header("X-XSRF-TOKEN", xsrf) + .put(ClientResponse.class, putStr); + + return getResponse.getStatus() == 200; + } catch (Exception e) { + e.printStackTrace(); + } + return false; + } + + + private static JSONObject transformUserForSGPost(JSONObject user) { + try { + String template = "{\"index\":%s,\"username\":\"%s\",\"role\":\"%s\",\"id\":%s,\"status\":0,\"password\":null,\"emailAddress\":null,\"authorities\":null,\"passwordChanged\":null,\"active\":true,\"certificate\":null,\"statusPassword\":0}"; + String index = user.getString("index"); + String username = user.getString("username"); + String role = user.getString("role"); + String id = user.getString("id"); + return new JSONObject(String.format(template, index, username, role, id)); + } catch (JSONException e) { + e.printStackTrace(); + } + return null; + } + + private static JSONObject transformDomainForSGPost(JSONObject domain) { + try { + String template = "{\"domainId\":%s,\"domainCode\":\"%s\",\"smlSubdomain\":\"%s\",\"id\":null,\"smlRegistered\":false,\"serviceMetadataCount\":0,\"status\":2}"; + String domainId = domain.getString("id"); + String domainCode = domain.getString("domainCode"); + String smlSubdomain = domain.getString("smlSubdomain"); + return new JSONObject(String.format(template, domainId, domainCode, smlSubdomain)); + } catch (JSONException e) { + e.printStackTrace(); + } + return null; + } } -- GitLab