Skip to content
Permalink
Browse files

changes in scim2 connector to support multiaccount

  • Loading branch information
ethan committed Oct 26, 2020
1 parent bec8707 commit 11554ffdbb388d7f21f46309cc022b0d4d9b990b
@@ -27,7 +27,7 @@

<groupId>edu.unc.polygon</groupId>
<artifactId>connector-scim2</artifactId>
<version>.98-SNAPSHOT</version>
<version>.9992-SNAPSHOT</version>
<packaging>jar</packaging>

<name>Scim2 Connector</name>
@@ -229,7 +229,7 @@ public void sync(ObjectClass oc, SyncToken fromToken, SyncResultsHandler handler
String Scim2Filter = "";
String Scim2SortBy = "";
String Scim2SortOrder = "";
String Scim2StartIndex = "0";
String Scim2StartIndex = "1";
String Scim2Count = "2000";
/* if (configuration.getScim2Attributes() != null && !StringUtil.isEmpty(configuration.getScim2Attributes())) {
Scim2Attributes = "attributes=" + configuration.getScim2Attributes();
@@ -313,41 +313,42 @@ public void sync(ObjectClass oc, SyncToken fromToken, SyncResultsHandler handler
LOG.info("Building sync connector object for " + String.valueOf(personJson.getString(ATTR_ID)));
ConnectorObjectBuilder objectBuild = new ConnectorObjectBuilder();
objectBuild.setUid(new Uid(String.valueOf(personJson.getString(ATTR_ID))));
String [] potentialAttributes = { ATTR_ID, ATTR_EXTERNAL_ID, ATTR_USER_NAME, ATTR_ACTIVE};
String [] potentialAttributes = { ATTR_EXTERNAL_ID, ATTR_USER_NAME, ATTR_ACTIVE};
for ( String potentialAttribute: potentialAttributes ) {
LOG.info(">>> checking for attribute " + potentialAttribute );
if ( personJson.has(potentialAttribute) && personJson.get(potentialAttribute) != null && !JSONObject.NULL.equals(personJson.get(potentialAttribute)) ) {
LOG.info(">>> found attribute " + potentialAttribute );
if ( potentialAttribute.equals(ATTR_EXTERNAL_ID) ) {
//builder.setName(attributes.getString(potentialAttribute));
objectBuild.setName(personJson.getString(ATTR_EXTERNAL_ID));
addAttr(objectBuild, potentialAttribute, personJson.getString(potentialAttribute));
}
if ( potentialAttribute.equals(ATTR_USER_NAME) ) {
else if ( potentialAttribute.equals(ATTR_USER_NAME) ) {
//builder.setName(attributes.getString(potentialAttribute));
//objectBuild.setName(personJson.getString(ATTR_USER_NAME));
LOG.info(">>> Processing userName " + potentialAttribute );
JSONObject onyenInfo = new JSONObject();
onyenInfo = (JSONObject)personJson.get("urn:ietf:params:scim:schema:unc:core:2.0:Onyen");
onyenInfo.put(ATTR_USER_NAME,personJson.getString(ATTR_USER_NAME));
onyenInfo.put(ATTR_ID,personJson.getString(ATTR_ID));
objectBuild.setName(personJson.getString(ATTR_USER_NAME));
addAttr(objectBuild, ATTR_USER_NAME, onyenInfo.toString());
String logSafeString = onyenInfo.toString().replace('{','$').replace('}','#');
LOG.info(">>> Just added onyen information " + logSafeString );
if ((String)onyenInfo.get("type") == "PRIMARY") {
/*if ((String)onyenInfo.get("type") == "PRIMARY") {
objectBuild.setUid(personJson.getString(ATTR_ID));
addAttr(objectBuild, ATTR_ID, personJson.getString(ATTR_ID));
}
}*/
}
/*if ( potentialAttribute.equals(ATTR_ID) ) {
objectBuild.setUid(personJson.getString(ATTR_ID));
addAttr(objectBuild, potentialAttribute, personJson.getString(potentialAttribute));
}*/
if ( potentialAttribute.equals(ATTR_ACTIVE) ) {
else if ( potentialAttribute.equals(ATTR_ID) ) {
//objectBuild.setUid(personJson.getString(ATTR_ID));
//addAttr(objectBuild, potentialAttribute, personJson.getString(potentialAttribute));
}
else if ( potentialAttribute.equals(ATTR_ACTIVE) ) {
addAttr(objectBuild, potentialAttribute, personJson.getBoolean(potentialAttribute));
}
/*else {
else {
addAttr(objectBuild, potentialAttribute, personJson.getString(potentialAttribute));
}*/
}
}
}
ConnectorObject connectorObject = objectBuild.build();
@@ -376,7 +377,7 @@ public void executeQuery(ObjectClass oc, Scim2Filter filter, ResultsHandler hand
String Scim2Filter = "";
String Scim2SortBy = "";
String Scim2SortOrder = "";
String Scim2StartIndex = "0";
String Scim2StartIndex = "1";
String Scim2Count = "2000";
if (configuration.getScim2Attributes() != null && !StringUtil.isEmpty(configuration.getScim2Attributes())) {
Scim2Attributes = "attributes=" + configuration.getScim2Attributes();
@@ -573,19 +574,13 @@ protected JSONObject callRequest(HttpRequestBase request) throws IOException {
file.flush();
file.close();
int statusCode = response.getStatusLine().getStatusCode();
/* No status responses to handle yet
if (statusCode == 500) {
JSONObject errorResult = new JSONObject(responseText);
//JSONObject errorData = errorResult.getJSONObject("data");
if (errorResult.getString("code").equals("existing_user_login")) {
closeResponse(response);
throw new AlreadyExistsException(jo.getString(ATTR_NAME));
}
if (errorResult.getString("code").equals("existing_user_email")) {
closeResponse(response);
throw new AlreadyExistsException(jo.getString(ATTR_MAIL));
}
throw new ConnectionFailedException;
}
/* No status responses to handle yet
if (statusCode == 404) {
JSONObject errorResult = new JSONObject(responseText);
//JSONObject errorData = errorResult.getJSONObject("data");
@@ -632,7 +627,7 @@ private void handleUserId ( ResultsHandler handler, JSONObject uidSearchResponse
// attributes = (JSONObject) uidSearchResponseJson.get("attributes");
//}
//builder.setUid(new Uid(String.valueOf(id)));
String [] potentialAttributes = { ATTR_ID, ATTR_EXTERNAL_ID, ATTR_USER_NAME, ATTR_ACTIVE};
String [] potentialAttributes = { ATTR_EXTERNAL_ID, ATTR_USER_NAME, ATTR_ACTIVE};
for ( String potentialAttribute: potentialAttributes ) {
LOG.info(">>> checking for attribute " + potentialAttribute );
if ( uidSearchResponseJson.has(potentialAttribute) && uidSearchResponseJson.get(potentialAttribute) != null && !JSONObject.NULL.equals(uidSearchResponseJson.get(potentialAttribute)) ) {
@@ -643,35 +638,35 @@ private void handleUserId ( ResultsHandler handler, JSONObject uidSearchResponse
}*/
if ( potentialAttribute.equals(ATTR_EXTERNAL_ID) ) {
//builder.setName(attributes.getString(potentialAttribute));
builder.setName(uidSearchResponseJson.getString(ATTR_EXTERNAL_ID));
addAttr(builder, potentialAttribute, uidSearchResponseJson.getString(potentialAttribute));
}
if ( potentialAttribute.equals(ATTR_USER_NAME) ) {
else if ( potentialAttribute.equals(ATTR_USER_NAME) ) {
//builder.setName(attributes.getString(potentialAttribute));
//objectBuild.setName(personJson.getString(ATTR_USER_NAME));
LOG.info(">>> Inside processing userName " + potentialAttribute );
JSONObject onyenInfo = new JSONObject();
onyenInfo = (JSONObject)uidSearchResponseJson.get("urn:ietf:params:scim:schema:unc:core:2.0:Onyen");
onyenInfo.put(ATTR_USER_NAME,uidSearchResponseJson.getString(ATTR_USER_NAME));
onyenInfo.put(ATTR_ID,uidSearchResponseJson.getString(ATTR_ID));
builder.setName(uidSearchResponseJson.getString(ATTR_USER_NAME));
addAttr(builder, ATTR_USER_NAME, onyenInfo.toString());
String logSafeString = onyenInfo.toString().replace('{','$').replace('}','#');
LOG.info(">>> Just added onyen information " + logSafeString );
if ((String)onyenInfo.get("type") == "PRIMARY") {
/*if ((String)onyenInfo.get("type") == "PRIMARY") {
builder.setUid(uidSearchResponseJson.getString(ATTR_ID));
addAttr(builder, ATTR_ID, uidSearchResponseJson.getString(ATTR_ID));
}
}*/
}

/*if ( potentialAttribute.equals(ATTR_ID) ) {
builder.setUid(uidSearchResponseJson.getString(ATTR_ID));
addAttr(builder, potentialAttribute, uidSearchResponseJson.getString(potentialAttribute));
}*/
if ( potentialAttribute.equals(ATTR_ACTIVE) ) {
else if ( potentialAttribute.equals(ATTR_ID) ) {
//builder.setUid(uidSearchResponseJson.getString(ATTR_ID));
//addAttr(builder, potentialAttribute, uidSearchResponseJson.getString(potentialAttribute));
}
else if ( potentialAttribute.equals(ATTR_ACTIVE) ) {
addAttr(builder, potentialAttribute, uidSearchResponseJson.getBoolean(potentialAttribute));
}
/*else {
else {
addAttr(builder, potentialAttribute, uidSearchResponseJson.getString(potentialAttribute));
}*/
}
}
}
ConnectorObject connectorObject = builder.build();

0 comments on commit 11554ff

Please sign in to comment.
You can’t perform that action at this time.