public boolean isUserInAFederatedDomain(String userPrinciaplName) { log.info("isUserInAFederatedDomain {0}", userPrinciaplName); String[] parts = userPrinciaplName.split("@"); Office365Domain dom = getDomain(parts[1]); if (dom != null) { if (dom.getDomainType() == Office365Domain.DOMAIN_TYPE_FEDERATED) { return true; } else { return false; } } else { throw new ConnectorException("Domain for " + userPrinciaplName + " does not exist"); } }
private void populateVerifiedDomains() { log.info("populateVerifiedDomains"); this.verifiedDomains = new HashMap<String, Office365Domain>(); JSONObject obj = getRequest("/tenantDetails?api-version=" + Office365Connection.API_VERSION); try { JSONArray verifiedDomains = obj.getJSONArray("value").getJSONObject(0).getJSONArray("verifiedDomains"); for (int i = 0; i < verifiedDomains.length(); i++) { JSONObject domainObj = verifiedDomains.getJSONObject(i); Office365Domain domain = null; String name = domainObj.getString("name").toLowerCase(); String type = domainObj.getString("type"); if (type.equals("Federated")) { log.info("Got a Federated domain named {0}", name); domain = new Office365FederatedDomain(name); this.verifiedDomains.put(name, domain); } else if (type.equals("Managed")) { log.info("Got a Managed domain named {0}", name); domain = new Office365ManagedDomain(name); this.verifiedDomains.put(name, domain); } else if (type.equals("None")) { log.info("Received a None domain for {0}, skipping", name); } else { log.error("Unrecognised type of {0} passed for domain {1}", type, domain); throw new ConnectorException( "Unrecognised domain type of " + type + " received for doman " + name); } if (domain != null) { domain.initiliseCapability(domainObj.getString("capabilities").split(",")); domain.setDefaultDomain(domainObj.getBoolean("default")); domain.setId(domainObj.getString("id")); domain.setInitial(domainObj.getBoolean("initial")); } } log.info("Finished reading verified domains"); } catch (JSONException je) { log.error(je, "Error populating verified domains"); } }