Deploy to GitHub pages

This commit is contained in:
github-actions[bot]
2023-07-24 14:20:28 +00:00
committed by GitHub
commit 44504ff0ab
4377 changed files with 506021 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
package sailpoint.api;
import sailpoint.object.Filter;
import sailpoint.object.QueryOptions;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* A context object class used to query for data
* This class is for old rules using SailPointContext. Any new rules submitted using the following methods will be blocked and
* asked to migrate to the replacement methods available in IDNRuleUtil
*
* These methods allow you to pass a class name to query on. The two classes supported are `Identity.class` and `Link.class`
*/
public class SailPointContext {
/**
* Query the context to get the number of objects for the given query
* @param className Identity or Link class
* @param queryOptions options to filter results
* @return the number of objects found
*/
public int countObjects(Class className, QueryOptions queryOptions) {
return 5;
}
/**
* Query the context to get a list of objects for the given query
* @param className Identity or Link class
* @param queryOptions options to filter results
* @return the list of objects found
*/
public <T> List<T> getObjects(Class className, QueryOptions queryOptions) {
return new ArrayList<T>();
}
/**
* Query the context to get a list of results only including the attributes provided that match the given query
* @param className Identity or Link class
* @param queryOptions options to filter results
* @param attributes the attributes to return
* @return
*/
public Iterator<Object[]> search(Class className, QueryOptions queryOptions, String attributes) {
return null;
}
/**
* Query the context to get a list of results that match the given query
* @param className Identity or Link class
* @param queryOptions options to filter results
* @return the results of the query
*/
public Iterator<Object[]> search(Class className, QueryOptions queryOptions) {
return null;
}
/**
* Query the context to get an object by name
* @param className Identity or Link class
* @param name the name of the object to fetch
* @return the result of the query
*/
public <T> Object getObjectByName(Class className, String name) {
return new Object();
}
/**
* Query the context to get a unique object with filters
* @param className Identity or Link class
* @param filters options to filter by
* @return the result of the query
*/
public <T> Object getUniqueObject(Class className, Filter... filters) {
return new Object();
}
}

View File

@@ -0,0 +1,375 @@
package sailpoint.connector.webservices;
import sailpoint.object.Attributes;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Endpoint {
private String _contextUrl;
private String _httpMethodType;
private String _operationType;
private String _rootPath;
private String _fullUrl;
private String _baseUrl;
private int _sequenceNumberForEndpoint;
private String _uniqueNameForEndPoint;
private Map _resMappingObj;
private Map _header;
private Map _body;
private List _responseCode;
private Attributes<String, Object> _attributes;
/**
* Use this method to get the name of the rule to run after the webservice request completes.
*/
public String getAfterRule() {
return "afterRule";
}
/**
* Use this method to get the name of the rule to run before the webservice request completes
*/
public String getBeforeRule() {
return "beforeRule";
}
/**
* Use this method to set the context url for the particular operation (create user, update user, account aggregation, etc...)
* @param value the name of the context url
*/
public void setContextUrl(java.lang.String value) {
this._contextUrl = value;
}
/**
* Use this method to get the context url for the particular operation (create user, update user, account aggregation, etc...)
*/
public String getContextUrl() {
return this._contextUrl;
}
/**
* Use this method to set the http method type (put, post, get, patch, delete) for the particular operation (create user, update user, account aggregation, etc...)
* @param value the name of the http method type [get, post, put, patch, delete]
*/
public void setHttpMethodType(java.lang.String value) {
this._httpMethodType = value;
}
/**
* Use this method to get the http method type (put, post, get, patch, delete) for the particular operation (create user, update user, account aggregation, etc...)
*/
public String getHttpMethodType() {
return this._httpMethodType;
}
/**
* Use this method to set the operation type (Account Aggregation, Group Aggregation, Create Account, etc...) for the particular operation record (create user, update user, account aggregation, etc...)
* @param value the name of the operation type
*/
public void setOperationType(java.lang.String value) {
this._operationType = value;
}
/**
* Use this method to get the operation type (Account Aggregation, Group Aggregation, Create Account, etc...) for the particular operation record (create user, update user, account aggregation, etc...)
*/
public String getOperationType() {
return this._operationType;
}
/**
* Use this method to set the root of the JSON response returned from the managed source for the particular operation (create user, update user, account aggregation, etc...)
* <br>
* Example root path for the json below: {@code $.results }
* <pre>
* {
* "results": [
* {
* "id": "12345",
* "name": "John Doe"
* "email": "john.doe@sailpoint.com"
* },
* {
* "id": "54321",
* "name": "Jane Doe",
* "email": "jane.doe@sailpoint.com"
* }
* ]
* }
* </pre>
* @param value the name of the root of the JSON response results
*/
public void setRootPath(java.lang.String value) {
this._rootPath = value;
}
/**
* Use this method to get the root of the JSON response returned from the managed source for the particular operation (create user, update user, account aggregation, etc...)
* <br>
* Example root path for the json below: {@code $.results }
* <pre>
* {
* "results": [
* {
* "id": "12345",
* "name": "John Doe"
* "email": "john.doe@sailpoint.com"
* },
* {
* "id": "54321",
* "name": "Jane Doe",
* "email": "jane.doe@sailpoint.com"
* }
* ]
* }
* </pre>
*/
public String getRootPath() {
return this._rootPath;
}
/**
* Use this method to set the complete url (endpoint) of the operation that is to be performed for the particular operation
* <pre>
* Example full url for Airtable Get Users call
* ex: https://api.airtable.com/v0/appe0bVnLjyV97hyg/Users
* </pre>
* @param value the full url as a string
*/
public void setFullUrl(java.lang.String value) {
this._fullUrl = value;
}
/**
* Use this method to get the complete url (endpoint) of the operation that is to be performed for the particular operation
* <pre>
* Example full url for Airtable Get Users call
* ex: https://api.airtable.com/v0/appe0bVnLjyV97hyg/Users
* </pre>
*/
public String getFullUrl() {
return this._fullUrl;
}
/**
* Use this method to set the base url (endpoint) of the operation that is to be performed for the particular operation
* <pre>
* Example base url for Airtable Get Users call
* ex: https://api.airtable.com/v0/appe0bVnLjyV97hyg
* </pre>
* @param value the base url as a string
*/
public void setBaseUrl(java.lang.String value){
this._baseUrl = value;
}
/**
* Use this method to get the base url (endpoint) of the operation that is to be performed for the particular operation
* <pre>
* Example base url for Airtable Get Users call
* ex: https://api.airtable.com/v0/appe0bVnLjyV97hyg
* </pre>
*/
public String getBaseUrl() {
return this._baseUrl;
}
/**
* Use this method to get the sequence number for the particular operation (create user, update user, account aggregation, etc...)
*/
public int getSequenceNumberForEndpoint() {
return this._sequenceNumberForEndpoint;
}
/**
* Use this method to get the unique operation name for the particular operation (create user, update user, account aggregation, etc...)
*/
public String getUniqueNameForEndPoint() {
return this._uniqueNameForEndPoint;
}
/**
* Use this method to set the response mapping for the response attributes returned from the JSON response of the managed source.
* <br>
* The key would be the attribute name from the source account schema and the value would be the JSON path after the root path.
* <pre>
{
* "results": [
* {
* "fields": {
* "id": "12345",
* "name": "John Doe"
* "email": "john.doe@sailpoint.com"
* }
* },
* {
* "fields": {
* "id": "54321",
* "name": "Jane Doe",
* "email": "jane.doe@sailpoint.com"
* }
* }
* ]
* }
* </pre>
* Root path: $.results
* <br>
* Response Map
* <pre>
* {
* "id": "fields.id",
* "name": "fields.name",
* "email": "fields.email"
* }
* </pre>
*
* @param value the mapping of account schema attribute to the JSON path value in the JSON response
*/
public void setResMappingObj(Map value) {
this._resMappingObj = value;
}
/**
* Use this method to get the response mapping for the response attributes returned from the JSON response of the managed source.
* <br>
* The key would be the attribute name from the source account schema and the value would be the JSON path after the root path.
* <pre>
{
* "results": [
* {
* "fields": {
* "id": "12345",
* "name": "John Doe"
* "email": "john.doe@sailpoint.com"
* }
* },
* {
* "fields": {
* "id": "54321",
* "name": "Jane Doe",
* "email": "jane.doe@sailpoint.com"
* }
* }
* ]
* }
* </pre>
* Root path: $.results
* <br>
* Response Map
* <pre>
* {
* "id": "fields.id",
* "name": "fields.name",
* "email": "fields.email"
* }
* </pre>
*
*/
public Map getResMappingObj() {
return this._resMappingObj;
}
/**
* Use this method to set the header values for the request
* <pre>
* //Set Header Content-Type
* Map headerMap = requestEndPoint.getHeader();
* headerMap.put("Content-Type", "application/json");
* requestEndPoint.setHeader(headerMap);
* </pre>
* @param value the map of http headers to send with the request
*/
public void setHeader(Map value) {
this._header = value;
}
/**
* Use this method to get the header values for the request
* <pre>
* //Set Header Content-Type
* Map headerMap = requestEndPoint.getHeader();
* headerMap.put("Content-Type", "application/json");
* requestEndPoint.setHeader(headerMap);
* </pre>
*/
public Map getHeader() {
return this._header;
}
/**
* Use this method to add a header value to the existing http header map for the request
* <pre>
* requestEndPoint.addHeader("Authorization", "Bearer " + accessToken);
* </pre>
* @param entry the key for the header
* @param value the value for the header
*/
public void addHeader(java.lang.String entry, java.lang.String value) {
if (this._header == null) {
this._header = new HashMap();
}
this._header.put(entry, value);
}
/**
* Use this method to set the http payload information as a map.
* <br>
* The map must contain three keys {@code bodyFormat, bodyFormData, jsonBody}. The bodyFormat value can be {@code raw}
* <br>
* which means the user has provided values as a raw JSON string, otherwise the user has provided the value in the key,value format that must be converted into JSON
* @param value the http payload map
*/
public void setBody(Map value) {
this._body = value;
}
/**
* Use this method to get the http payload information as a map.
* <br>
* The map contains three keys {@code bodyFormat, bodyFormData, jsonBody}.
*/
public Map getBody() {
return this._body;
}
/**
* Use this method to set the value of successful response codes as a list (200,201,299). This will be respected by the connector.
* <br>
* If any other response codes are returned this would be considered as a request failure.
* @param value the list of successful response code values
*/
public void setResponseCode(java.util.List value) {
this._responseCode = value;
}
/**
* Use this method to get the value of successful response codes as a list (200,201,299).
*/
public List getResponseCode() {
return this._responseCode;
}
/**
* Use this method to get all the available attributes
* @return
*/
public Attributes getAttributes() {
return this._attributes;
}
/**
* Use this method to get the value of an attribute
* @param name the name of the attribute
* @return
*/
public Object getAttribute(java.lang.String name) {
return this._attributes != null ? this._attributes.get(name) : null;
}
}

View File

@@ -0,0 +1,167 @@
package sailpoint.connector.webservices;
import java.util.List;
/**
* Definition of a Web Services Client interface available to Rule implementors.
*/
public class WebServicesClient {
protected HttpClient _client;
/**
* Configure connection parameters. See the ARG_* constants.
* <pre>
* public static final String ARG_URL = "url";
* public static final String ARG_USERNAME = "username";
* public static final String ARG_PASSWORD = "password";
* public static final String ARG_TIMEOUT = "timeoutInSeconds";
* </pre>
* @param args map of the available configuration parameters, ARG_URL, ARG_USERNAME, ARG_PASSWORD, ARG_TIMEOUT
* @throws java.lang.Exception The exception thrown by the client
*/
public void configure(java.util.Map args) throws java.lang.Exception {
}
/**
* Use this method to get a list of cookies associated with the request
* @return List of cookies associated with the request
*/
public List getCookies() {
return this._client.getCookies();
}
/**
* Use this method to execute a GET call with specifying header values and allowed statuses.
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Get request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executeGet(java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "getResponse";
}
/**
* Use this method to execute a GET call with specifying the url, header values and allowed statuses.
* @param url The url to execute the request against
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Get request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executeGet(java.lang.String url, java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "getResponse";
}
/**
* Use this method to execute a POST call with specifying the url, payload, and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Post request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePost(java.lang.String url, java.lang.Object payload, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "postResponse";
}
/**
* Use this method to execute a POST call with specifying the url, payload, header values and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Post request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePost(java.lang.String url, java.lang.Object payload, java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "postResponse";
}
/**
* Use this method to execute a PUT call with specifying the url, payload, and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Put request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePut(java.lang.String url, java.lang.Object payload, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "putResponse";
}
/**
* Use this method to execute a PUT call with specifying the url, payload, header values and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Put request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePut(java.lang.String url, java.lang.Object payload, java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "putResponse";
}
/**
* Use this method to execute a PATCH call with specifying the url, payload and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Patch request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePatch(java.lang.String url, java.lang.Object payload, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "patchResponse";
}
/**
* Use this method to execute a PATCH call with specifying the url, payload, header values and allowed statuses.
* @param url The url to execute the request against
* @param payload The payload to send to the request endpoint
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Patch request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executePatch(java.lang.String url, java.lang.Object payload, java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "patchResponse";
}
/**
* Get the last executed request's response headers.
* @return Map of response headers
*/
public java.util.Map<java.lang.String,java.lang.String> getResponseHeaders() {
return this._client.getResponseHeaders();
}
/**
* Use this method to execute a DELETE call specifying the url and allowed statuses.
* @param url The url to execute the request against
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Delete request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executeDelete(java.lang.String url, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "deleteResponse";
}
/**
* Use this method to execute a DELETE call specifying the url, header values and allowed statuses.
* @param url The url to execute the request against
* @param headers Any headers needed to authenticate or specify a content-type
* @param allowedStatuses Allowed response statuses, ie: 200, 201, 400, etc...
* @return Delete request response object
* @throws java.lang.Exception The exception thrown by the client
*/
public String executeDelete(java.lang.String url, java.util.Map headers, java.util.List<java.lang.String> allowedStatuses) throws java.lang.Exception {
return "deleteResponse";
}
}

View File

@@ -0,0 +1,45 @@
package sailpoint.object;
import java.util.ArrayList;
import java.util.List;
import sailpoint.object.Filter.LeafFilter;
public class Application {
public String getId() {
return "id";
}
public String getName() {
return "name";
}
public Attributes<String, Object> getAttributes() {
return new Attributes<String,Object>();
}
public Object getAttributeValue(String name) {
return new Object();
}
public String getStringAttributeValue(String name) {
return "attributeValue";
}
public List<Schema> getSchemas() {
return new ArrayList<Schema>();
}
public int getIntAttributeValue(String name) {
return 1;
}
public LeafFilter getManagerCorrelationFilter() {
return new LeafFilter();
}
public List<PasswordPolicyHolder> getPasswordPolicies() {
return new ArrayList<PasswordPolicyHolder>();
}
}

View File

@@ -0,0 +1,13 @@
package sailpoint.object;
public class AttributeDefinition extends BaseAttributeDefinition {
public boolean isEntitlement() {
return false;
}
public boolean isMulti() {
return false;
}
}

View File

@@ -0,0 +1,25 @@
package sailpoint.object;
import java.util.*;
public class Attributes<K, V> extends HashMap<K, V> {
public Map<K, V> getMap() {
return new HashMap<>();
}
public List getList(String attributeName) {
return new ArrayList();
}
public List<String> getStringList(String name) {
return new ArrayList<>();
}
public String getString(String attributeName) {
return "attributeValue";
}
public List<String> getKeys() {
return new ArrayList<>();
}
}

View File

@@ -0,0 +1,96 @@
package sailpoint.object;
import java.util.List;
public abstract class BaseAttributeDefinition {
public static final String TYPE_STRING = "string";
public static final String TYPE_SECRET = "secret";
public static final String TYPE_LONG = "long";
public static final String TYPE_INT = "int";
public static final String TYPE_BOOLEAN = "boolean";
public static final String TYPE_DATE = "date";
public static final String TYPE_PERMISSION = "permission";
String _name;
String _displayName;
String _type;
boolean _multi;
String _description;
protected String _categoryName;
private Object _defaultValue;
protected List<Object> _allowedValues;
protected boolean _required;
public String getName() {
return this._name;
}
public void setName(String name) {
this._name = name;
}
public String getDisplayName() {
return this._displayName;
}
public void setDisplayName(String name) {
this._displayName = name;
}
public String getType() {
return this._type;
}
public void setType(String type) {
this._type = type;
}
public boolean isMulti() {
return this._multi;
}
public void setMulti(boolean b) {
this._multi = b;
}
public boolean isMultiValued() {
return this._multi;
}
public void setMultiValued(boolean b) {
this._multi = b;
}
public String getDescription() {
return this._description;
}
public void setDescription(String description) {
this._description = description;
}
public String getCategoryName() {
return this._categoryName;
}
public void setCategoryName(String categoryName) {
this._categoryName = categoryName;
}
public boolean isRequired() {
return this._required;
}
public void setRequired(boolean required) {
this._required = required;
}
public Object getDefaultValue() {
return this._defaultValue;
}
public void setDefaultValue(Object defaultValue) {
this._defaultValue = defaultValue;
}
}

View File

@@ -0,0 +1,27 @@
package sailpoint.object;
public class Bundle {
String _displayName;
String _name;
public Bundle() {
}
/**
* Get the display name of the bundle
* @return the displayName
*/
public String getDisplayName() {
return this._displayName;
}
/**
* Get the displayable name of the bundle.
* If the displayName is empty, return the name
* @return the displayableName or Name
*/
public String getDisplayableName() {
return null == this._displayName ? this._name : this._displayName;
}
}

View File

@@ -0,0 +1,105 @@
package sailpoint.object;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
public class Entitlement {
private String applicationName;
private String attributeName;
private String attributeValue;
private String description;
public String getApplicationName() {
try {
String var2;
String var3 = var2 = this.applicationName;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getAttributeName() {
try {
String var2;
String var3 = var2 = this.attributeName;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getAttributeValue() {
try {
String var2;
String var3 = var2 = this.attributeValue;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getDescription() {
try {
String var2;
String var3 = var2 = this.description;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public static List<Entitlement> getAccountEntitlements(Locale locale, Link link, String attributeFilter) {
Object[] var17 = new Object[]{locale, link, attributeFilter};
try {
List accountEntitlements = new ArrayList();
Application app = link.getApplication();
String appName = "unknown";
if (app != null) {
appName = app.getName();
if (appName == null) {
appName = app.getId();
}
}
Schema schema = app.getAccountSchema();
List attrs = schema.getEntitlementAttributeNames();
Iterator var8 = attrs.iterator();
while(true) {
String attr;
List values;
do {
do {
if (!var8.hasNext()) {
return accountEntitlements;
}
attr = (String)var8.next();
} while(attributeFilter != null && (attr == null || !attr.startsWith(attributeFilter)));
Object v = link.getAttribute(attr);
values = Util.asList(v);
} while(values == null);
Iterator var12 = values.iterator();
while(var12.hasNext()) {
Object obj = var12.next();
String strVal = obj.toString();
String description = Explanator.getDescription(app, attr, strVal, locale);
accountEntitlements.add(new Entitlement(appName, attr, strVal, description, locale));
}
}
} catch (Throwable var24) {
throw var24;
}
}
}

View File

@@ -0,0 +1,20 @@
package sailpoint.object;
public class Field extends BaseAttributeDefinition {
public String getUnqualifiedName() {
return "unqualifiedName";
}
public String getStringAttribute(String name) {
return "attributeValue";
}
public String getApplication() {
return "application";
}
public Object getAttribute(String attribute) {
return new Object();
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,160 @@
package sailpoint.object;
import java.util.ArrayList;
import java.util.List;
public class Identity {
/**
* Get the calling Identity as a string
* @return The string representation of the Identity
*/
public String toString() {
return "identityString";
}
/**
* Get the calling Identity Id
* @return The string Id of the Identity
*/
public String getId() {
return "id";
}
/**
* Get the calling Identity name
* @return The string name of the Identity
*/
public String getName() {
return "identityName";
}
/**
* Get's the calling Identities Manager Object
* @return The manager's Identity Object
*/
public Identity getManager() {
return new Identity();
}
/**
* Get true/false if the Identity is a manager
* @return true/false is the Identity a manager
*/
public boolean getManagerStatus() {
return false;
}
/**
* Get a list of links that the Identity is connected to
* @return List of Link Objects
*/
public List<Link> getLinks() {
return new ArrayList<Link>();
}
/**
* Get a list of Bundle Objects of the assigned Roles of the Identity
* @return List of Bundle Objects
*/
public List<Bundle> getAssignedRoles() {
return new List<Bundle>();
}
public List<Bundle> getBundles() {
return new List<Bundle>();
}
public Attributes<String, Object> getAttributes() {
return new Attributes<String, Object>();
}
public boolean isCorrelated() {
return false;
}
/**
* Get the first name of the Identity
* @return the first name as a String
*/
public String getFirstname() {
return "name";
}
/**
* Get the last name of the Identity
* @return the last name as a String
*/
public String getLastname() {
return "name";
}
/**
* Get the full name of the Identity
* @return the full name as a String
*/
public String getFullName() {
return "fullName";
}
/**
* Get the display name of the Identity
* @return the display name as a String
*/
public String getDisplayName() {
return "displayName";
}
public String getDisplayableName() {
return "displayableName";
}
/**
* Get the email of the Identity
* @return the email as a String
*/
public String getEmail() {
return "email";
}
public boolean isInactive() {
return false;
}
/**
* Get the attribute value given the name of the attribute
* @param name The name of the attribute to get on an Identity.
* Examples include: manager, administrator, bundles, assignedRoles, capabilities, rights, workgroups, managerStatus, lastRefresh, correlated
* @return the attribute Object
*/
public Object getAttribute(String name) {
return new Object();
}
/**
* Get the attribute value as a string given the name of the attribute on the Identity.
* @param name
* @return the attribute value as a string
*/
public String getStringAttribute(String name) {
return "attributeValue";
}
public Link getLink(Application res) {
return new Link();
}
public Bundle getAssignedRole(String id) {
return new Bundle();
}
public List<RoleAssignment> getRoleAssignments() {
return new List<RoleAssignment>();
}
public String getType() {
return "type";
}
}

View File

@@ -0,0 +1,39 @@
package sailpoint.object;
/**
* The target integration application object that references this before/after rule.
*/
public class IntegrationConfig {
public static final String EXEC_STYLE_REQUEST = "request";
public static final String EXEC_STYLE_SYNCHRONOUS = "synchronous";
public static final String ATT_HOST = "host";
public static final String ATT_URL = "url";
public static final String ATT_USERNAME = "username";
public static final String ATT_NAME = "name";
public static final String ATT_PASSWORD = "password";
public static final String ATT_PASSWORD_CONFIRM = "passwordConfirm";
public static final String ATT_ROLE_SYNC_HISTORY = "roleSyncHistory";
public static final String ROLE_SYNC_STYLE_NONE = "none";
public static final String ROLE_SYNC_STYLE_DETECTABLE = "detectable";
public static final String ROLE_SYNC_STYLE_ASSIGNABLE = "assignable";
public static final String ROLE_SYNC_STYLE_DUAL = "dual";
public static final String ATT_UNIVERSAL_MANAGER = "universalManager";
public static final String ATT_OPERATIONS = "operations";
public static final String OP_SET_PASSWORD = "SetPassword";
public static final String ATT_NO_PROVISIONING_REQUESTS = "noProvisioningRequests";
public static final String ATT_PROVISIONING_REQUEST_EXPIRATION = "provisioningRequestExpiration";
public static final String ATT_NO_PERMISSIONS = "noPermissions";
public static final String ATT_NO_GROUP_PERMISSIONS = "noGroupPermissions";
public static final String ATT_GROUP_PROVISIONING = "groupProvisioning";
public static final String ATT_SCHEMA_PROVISIONING_MAP = "schemaProvisioningMap";
public static final String ATT_STATUS_SUCCESS_IS_COMMITTED = "statusSuccessIsCommitted";
public Object getAttribute(String name) {
return new Object();
}
public String getName() {
return "name";
}
}

View File

@@ -0,0 +1,132 @@
package sailpoint.object;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
/**
* The Link class is a reference to a single account within an application (Source)
*/
public class Link {
Application _application;
Identity _identity;
String _nativeIdentity;
Attributes<String, Object> _attributes;
String _displayName;
/**
* Get the application that this link references
* @return the application object
*/
public Application getApplication() {
return this._application;
}
/**
* Get the application name that this link references
* @return the application name
*/
public String getApplicationName() {
return this.getApplication() != null ? this.getApplication().getName() : null;
}
/**
* Get the application id that this link references
* @return
*/
public String getApplicationId() {
return this.getApplication() != null ? this.getApplication().getId() : null;
}
/**
* Get the Identity object that this link references
* @return the Identity tied to this link
*/
public Identity getIdentity() {
return this._identity;
}
/**
* Get the Entitlement Attributes of the link
* @return the attributes of the entitlement
*/
public Attributes getEntitlementAttributes() {
try {
Attributes attrs = new Attributes();
Schema schema = null;
if (this._application != null) {
schema = this._application.getSchema("account");
}
if (null != this._attributes && null != schema && null != schema.getEntitlementAttributeNames()) {
Iterator var3 = schema.getEntitlementAttributeNames().iterator();
while(var3.hasNext()) {
String attrName = (String)var3.next();
Object val = this._attributes.get(attrName);
if (null != val) {
attrs.put(attrName, val);
}
}
}
return attrs;
} catch (Throwable var10) {
throw var10;
}
}
/**
* Get the string value of the link's native identity.
* @return the native identity
*/
public String getNativeIdentity() {
return this._nativeIdentity;
}
/**
* Get a list of entitlements for the account link
* @param locale
* @param attributeFilter
* @return a list of entitlements
* @throws GeneralException
*/
public List<Entitlement> getEntitlements(Locale locale, String attributeFilter) throws GeneralException {
return Entitlement.getAccountEntitlements(locale, this, attributeFilter);
}
/**
* Get a single attribute of the account link
* @param name the name of the attribute to retrieve
* @return the given attributes value
*/
public Object getAttribute(String name) {
return this._attributes != null ? this._attributes.get(name) : null;
}
/**
* Get the attributes of the account link
* @return the attributes of the linked account
*/
public Attributes<String, Object> getAttributes() {
return this._attributes;
}
/**
* Get the display name of the account link
* @return the display name, if the display name is null return the native identity
*/
public String getDisplayableName() {
return this._displayName != null && this._displayName.trim().length() > 0 ? this._displayName : this._nativeIdentity;
}
/**
* A true or false value if the account is disabled
* @return true or false if the account is disabled
*/
public boolean isDisabled() {
return false;
}
}

View File

@@ -0,0 +1,353 @@
package sailpoint.object;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.JoinPoint.StaticPart;
import org.aspectj.runtime.internal.Conversions;
import org.aspectj.runtime.reflect.Factory;
import sailpoint.tools.GeneralException;
import sailpoint.tools.Index;
import sailpoint.tools.Indexes;
import sailpoint.tools.Localizable;
import sailpoint.tools.Message;
import sailpoint.tools.TracingAspect;
import sailpoint.tools.Util;
import sailpoint.tools.xml.SerializationMode;
import sailpoint.tools.xml.XMLClass;
import sailpoint.tools.xml.XMLProperty;
public class ManagedAttribute implements Cloneable {
private static final long serialVersionUID = -5357171423090984917L;
/** @deprecated */
@Deprecated
public static final String OLD_PERMISSION_ATTRIBUTE = "-";
private static final String[] UNIQUE_KEY_PROPERTIES;
public static final String CONFIG_DEFAULT_LANG = "defaultLanguage";
public static final String CONFIG_LANGUAGES = "languages";
public static final String[] SYSTEM_ATTRIBUTES;
public static final String PROV_ATTRIBUTE = "sysAttribute";
public static final String PROV_DISPLAY_NAME = "sysDisplayName";
public static final String PROV_DESCRIPTIONS = "sysDescriptions";
public static final String PROV_REQUESTABLE = "sysRequestable";
public static final String PROV_OWNER = "sysOwner";
public static final String PROV_SCOPE = "sysScope";
public static final String PROV_MANAGED_ATTRIBUTE_TYPE = "sysManagedAttributeType";
public static final String PROV_CLASSIFICATIONS = "sysClassifications";
public static final String[] PROV_ATTRIBUTES;
private static Map SystemAttributeMap;
private static CacheReference objectConfig;
/** @deprecated */
@Deprecated
private String _purview;
private Application _application;
private String _type;
private String _attribute;
private String _value;
private String _hash;
private String _displayName;
private String _uuid;
Attributes<String, Object> _attributes;
boolean _requestable;
private List<Permission> _permissions;
private List<Permission> _targetPermissions;
private Date _lastRefresh;
Date _lastTargetAggregation;
private boolean _uncorrelated;
private List<ManagedAttribute> _inheritance;
private boolean _aggregated;
private List<TargetAssociation> _associations;
String _key1;
String _key2;
String _key3;
String _key4;
public static final Comparator<ManagedAttribute> SP_ACCOUNTGROUP_BY_NAME;
public static final Comparator<ManagedAttribute> SP_ACCOUNTGROUP_BY_NATIVE_IDENTITY;
public static final Comparator<ManagedAttribute> SP_ACCOUNTGROUP_BY_OWNER;
public static final Comparator<ManagedAttribute> SP_ACCOUNTGROUP_BY_MODIFIED;
public ManagedAttribute() {
}
public Application getApplication() {
try {
Application var2;
Application var3 = var2 = this._application;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
@XMLProperty
public String getType() {
try {
String var2;
String var3 = var2 = this._type;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getAttribute() {
try {
String var2;
String var3 = var2 = this._attribute;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getDisplayName() {
try {
String var2;
String var3 = var2 = this._displayName;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getDisplayableName() {
try {
String displayableName;
if (ManagedAttribute.Type.Permission.name().equals(this._type)) {
displayableName = this._attribute;
} else {
displayableName = this._value;
}
if (this._displayName != null && this._displayName.trim().length() != 0) {
displayableName = this._displayName;
}
return displayableName;
} catch (Throwable var6) {
throw var6;
}
}
public Attributes<String, Object> getAttributes() {
try {
Attributes var2;
Attributes var3 = var2 = this._attributes;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public Object getAttribute(String name) {
try {
Object var10000 = this._attributes != null ? this._attributes.get(name) : null;
Object var4 = var10000;
Object var5 = var10000;
return var4;
} catch (Throwable var7) {
throw var7;
}
}
public String getApplicationId() {
try {
String var10000 = this._application != null ? this._application.getId() : null;
String var2 = var10000;
String var3 = var10000;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public Object get(String name) {
try {
Object var10000 = this._attributes != null ? this._attributes.get(name) : null;
Object var4 = var10000;
Object var5 = var10000;
return var4;
} catch (Throwable var7) {
throw var7;
}
}
public void put(String name, Object value) {
try {
if (name != null) {
if (value == null) {
if (this._attributes != null) {
this._attributes.remove(name);
}
} else {
if (this._attributes == null) {
this._attributes = new Attributes();
}
this._attributes.put(name, value);
}
}
Object var6 = null;
} catch (Throwable var8) {
throw var8;
}
}
public Map<String, String> getDescriptions() {
try {
Map map = null;
Object o = this.get("sysDescriptions");
if (o instanceof Map) {
map = (Map)o;
}
return map;
} catch (Throwable var7) {
throw var7;
}
}
public String toString() {
String t = this._type != null ? this._type : ManagedAttribute.Type.Entitlement.name();
return t.toString() + "/" + this._attribute + "/" + this._value;
}
static {
try {
UNIQUE_KEY_PROPERTIES = new String[]{"application", "type", "attribute", "value"};
SYSTEM_ATTRIBUTES = new String[]{"sysDescriptions"};
PROV_ATTRIBUTES = new String[]{"sysAttribute", "sysDisplayName", "sysDescriptions", "sysRequestable", "sysOwner", "sysScope", "sysManagedAttributeType", "sysClassifications"};
SP_ACCOUNTGROUP_BY_NAME = new Comparator<ManagedAttribute>() {
public int compare(ManagedAttribute ag1, ManagedAttribute ag2) {
Collator collator = Collator.getInstance();
collator.setStrength(0);
return collator.compare(ag1.getDisplayableName(), ag2.getDisplayableName());
}
};
SP_ACCOUNTGROUP_BY_NATIVE_IDENTITY = new Comparator<ManagedAttribute>() {
public int compare(ManagedAttribute ag1, ManagedAttribute ag2) {
Collator collator = Collator.getInstance();
collator.setStrength(0);
return collator.compare(ag1.getValue(), ag2.getValue());
}
};
SP_ACCOUNTGROUP_BY_OWNER = new Comparator<ManagedAttribute>() {
public int compare(ManagedAttribute ag1, ManagedAttribute ag2) {
Collator collator = Collator.getInstance();
collator.setStrength(0);
Identity owner1Id = ag1.getOwner();
Identity owner2Id = ag2.getOwner();
String owner1 = owner1Id != null ? owner1Id.getName() : "";
String owner2 = owner2Id != null ? owner1Id.getName() : "";
return collator.compare(owner1, owner2);
}
};
SP_ACCOUNTGROUP_BY_MODIFIED = new Comparator<ManagedAttribute>() {
public int compare(ManagedAttribute ag1, ManagedAttribute ag2) {
Date date1 = ag1.getModified();
if (date1 == null) {
date1 = new Date();
}
Date date2 = ag2.getModified();
if (date2 == null) {
date2 = new Date();
}
return date1.compareTo(date2);
}
};
} catch (Throwable var1) {
if (var1 instanceof ExceptionInInitializerError) {
throw (ExceptionInInitializerError)var1;
}
throw var1;
}
}
public static enum Type implements Localizable {
Entitlement,
Permission,
TargetPermission;
private String messageKey;
private Type(String messageKey) {
Object[] var5 = new Object[]{var1, Conversions.intObject(var2), messageKey};
try {
this.messageKey = messageKey;
} catch (Throwable var10) {
throw var10;
}
}
public String getMessageKey() {
try {
String var2;
String var3 = var2 = this.messageKey;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getLocalizedMessage() {
try {
String var2;
String var3 = var2 = this.getLocalizedMessage(Locale.getDefault(), TimeZone.getDefault());
return var2;
} catch (Throwable var5) {
throw var5;
}
}
static {
try {
Entitlement = new ManagedAttribute.Type("Entitlement", 0, "explanation_type_entitlement");
Permission = new ManagedAttribute.Type("Permission", 1, "explanation_type_permission");
TargetPermission = new ManagedAttribute.Type("TargetPermission", 2, "explanation_type_target_permission");
} catch (Throwable var1) {
if (var1 instanceof ExceptionInInitializerError) {
throw (ExceptionInInitializerError)var1;
}
throw var1;
}
}
}
}

View File

@@ -0,0 +1,877 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package sailpoint.object;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.JoinPoint.StaticPart;
import org.aspectj.runtime.internal.Conversions;
import org.aspectj.runtime.reflect.Factory;
import sailpoint.api.SailPointContext;
import sailpoint.tools.GeneralException;
import sailpoint.tools.Message;
import sailpoint.tools.TracingAspect;
import sailpoint.tools.Util;
import sailpoint.tools.xml.AbstractXmlObject;
import sailpoint.tools.xml.SerializationMode;
import sailpoint.tools.xml.XMLClass;
import sailpoint.tools.xml.XMLObjectFactory;
import sailpoint.tools.xml.XMLProperty;
import sailpoint.tools.xml.XMLReferenceResolver;
@XMLClass
public class ProvisioningPlan extends AbstractXmlObject {
public static final String APP_IIQ = "IIQ";
public static final String IIQ_APPLICATION_NAME = "IdentityIQ";
/** @deprecated */
@Deprecated
public static final String ATT_IIQ_PASSWORD = "password";
public static Object ATT_ASSIGNED_SCOPE;
public static final String ATT_OP = "op";
public static final String ATT_OBJECT_APPLICATION = "application";
public static final String ATT_OBJECT_ATTRIBUTES = "attributes";
public static final String ATT_OBJECT_ARGUMENTS = "args";
public static final String ATT_ATTRIBUTE_NAME = "name";
public static final String ATT_PERMISSION_TARGET = "target";
public static final String ATT_PERMISSION_RIGHTS = "rights";
public static final String ATT_REQUEST_ARGUMENTS = "args";
Identity _identity;
String _nativeIdentity;
List<ProvisioningPlan.AccountRequest> _accounts;
List<ProvisioningPlan.ObjectRequest> _objectRequests;
Attributes<String, Object> _arguments;
String _trackingId;
List<Identity> _requesters;
List<ProvisioningTarget> _provisioningTargets;
List<ProvisioningPlan.AbstractRequest> _filtered;
List<Question> _questionHistory;
String _targetIntegration;
ProvisioningResult _result;
boolean _provisioned;
long _maintenanceExpiration;
public ProvisioningPlan() {
}
public void add(ProvisioningPlan.AccountRequest account) {
try {
if (account != null) {
if (this._accounts == null) {
this._accounts = new ArrayList();
}
this._accounts.add(account);
}
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public void remove(ProvisioningPlan.AccountRequest account) {
try {
if (account != null && this._accounts != null) {
this._accounts.remove(account);
}
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public void addRequest(ProvisioningPlan.AbstractRequest req) {
try {
if (req instanceof ProvisioningPlan.AccountRequest) {
this.add((ProvisioningPlan.AccountRequest)req);
} else if (req instanceof ProvisioningPlan.ObjectRequest) {
this.addObjectRequest((ProvisioningPlan.ObjectRequest)req);
}
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public void setAccountRequests(List<ProvisioningPlan.AccountRequest> reqs) {
try {
this._accounts = reqs;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public List<ProvisioningPlan.AccountRequest> getAccountRequests() {
try {
List var2;
List var3 = var2 = this._accounts;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public boolean isEmpty() {
try {
boolean var2;
boolean var3 = var2 = this.isEmpty(this._accounts) && this.isEmpty(this._objectRequests);
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public List<Identity> getRequesters() {
try {
List var2;
List var3 = var2 = this._requesters;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getComments() {
try {
String var2;
String var3 = var2 = this.getString("comments");
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setComments(String c) {
try {
this.put("comments", c);
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public String getSource() {
try {
String var2;
String var3 = var2 = this.getString("source");
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public Identity getIdentity() {
try {
Identity var2;
Identity var3 = var2 = this._identity;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getNativeIdentity() {
try {
String var2;
String var3 = var2 = this._nativeIdentity;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setNativeIdentity(String s) {
try {
this._nativeIdentity = s;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public Attributes<String, Object> getArguments() {
try {
Attributes var2;
Attributes var3 = var2 = this._arguments;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setArguments(Attributes<String, Object> atts) {
try {
this._arguments = atts;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public void setTargetIntegration(String name) {
try {
this._targetIntegration = name;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public void setResult(ProvisioningResult r) {
try {
this._result = r;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public ProvisioningPlan.AccountRequest add(String appname, String identity, ProvisioningPlan.AccountRequest.Operation op) {
Object[] var6 = new Object[]{appname, identity, op};
try {
ProvisioningPlan.AccountRequest account = null;
if (appname != null && identity != null) {
account = new ProvisioningPlan.AccountRequest();
account.setApplication(appname);
account.setNativeIdentity(identity);
account.setOperation(op);
this.add(account);
}
return account;
} catch (Throwable var13) {
throw var13;
}
}
public ProvisioningPlan.AccountRequest add(String appname, String nativeIdentity, String attname, ProvisioningPlan.Operation op, Object value) {
Object[] var9 = new Object[]{appname, nativeIdentity, attname, op, value};
try {
ProvisioningPlan.AccountRequest account = null;
if (appname != null && attname != null) {
account = this.getAccountRequest(appname, (String)null, nativeIdentity);
if (account == null) {
account = new ProvisioningPlan.AccountRequest();
account.setApplication(appname);
account.setNativeIdentity(nativeIdentity);
this.add(account);
}
ProvisioningPlan.AttributeRequest att = new ProvisioningPlan.AttributeRequest();
att.setName(attname);
att.setOperation(op);
att.setValue(value);
account.add(att);
}
return account;
} catch (Throwable var18) {
throw var18;
}
}
public void put(String name, Object value) {
try {
if (name != null) {
if (this._arguments == null) {
this._arguments = new Attributes();
}
this._arguments.putClean(name, value);
}
Object var6 = null;
} catch (Throwable var8) {
throw var8;
}
}
public Object get(String name) {
try {
Object var10000 = this._arguments != null ? this._arguments.get(name) : null;
Object var4 = var10000;
Object var5 = var10000;
return var4;
} catch (Throwable var7) {
throw var7;
}
}
public List<ProvisioningPlan.AccountRequest> getAccountRequests(String appname) {
try {
List reqs = new ArrayList();
if (this._accounts != null && appname != null) {
Iterator var3 = this._accounts.iterator();
while(var3.hasNext()) {
ProvisioningPlan.AccountRequest req = (ProvisioningPlan.AccountRequest)var3.next();
if (appname.equals(req.getApplication())) {
reqs.add(req);
}
}
}
return reqs;
} catch (Throwable var10) {
throw var10;
}
}
public List<ProvisioningPlan.AccountRequest> getAccountRequests(String appname, String nativeIdentity) {
try {
List requests = new ArrayList();
Iterator var4 = Util.iterate(this._accounts).iterator();
while(true) {
ProvisioningPlan.AccountRequest request;
do {
do {
if (!var4.hasNext()) {
return requests;
}
request = (ProvisioningPlan.AccountRequest)var4.next();
} while(!Util.nullSafeEq(appname, request.getApplication()));
} while(!Util.isNullOrEmpty(nativeIdentity) && !Util.nullSafeEq(nativeIdentity, request.getNativeIdentity()));
requests.add(request);
}
} catch (Throwable var12) {
throw var12;
}
}
public ProvisioningPlan.AccountRequest getAccountRequest(String appname, String instance, String nativeIdentity) {
Object[] var5 = new Object[]{appname, instance, nativeIdentity};
try {
ProvisioningPlan.AccountRequest var9;
ProvisioningPlan.AccountRequest var10 = var9 = this.getAccountRequest(appname, instance, nativeIdentity, false);
return var9;
} catch (Throwable var12) {
throw var12;
}
}
private ProvisioningPlan.AccountRequest getAccountRequest(String appname, String instance, String nativeIdentity, boolean onlyAppName) {
Object[] var9 = new Object[]{appname, instance, nativeIdentity, Conversions.booleanObject(onlyAppName)};
try {
ProvisioningPlan.AccountRequest found = null;
if (this._accounts != null && appname != null) {
label40: {
Iterator var6 = this._accounts.iterator();
ProvisioningPlan.AccountRequest req;
do {
do {
if (!var6.hasNext()) {
break label40;
}
req = (ProvisioningPlan.AccountRequest)var6.next();
} while(!appname.equals(req.getApplication()));
} while(!onlyAppName && (!Util.nullSafeEq(req.getInstance(), instance, true) || !Util.nullSafeEq(req.getNativeIdentity(), nativeIdentity, true)));
found = req;
}
}
return found;
} catch (Throwable var17) {
throw var17;
}
}
public Map toMap() {
try {
Map map = new HashMap();
if (this._nativeIdentity != null) {
map.put("identity", this._nativeIdentity);
}
ArrayList list;
Iterator var3;
Map rmap;
if (this._accounts != null) {
list = new ArrayList();
var3 = this._accounts.iterator();
while(var3.hasNext()) {
ProvisioningPlan.AccountRequest req = (ProvisioningPlan.AccountRequest)var3.next();
rmap = req.toMap();
if (rmap != null) {
list.add(rmap);
}
}
map.put("accounts", list);
}
if (this._objectRequests != null) {
list = new ArrayList();
var3 = this._objectRequests.iterator();
while(var3.hasNext()) {
ProvisioningPlan.ObjectRequest req = (ProvisioningPlan.ObjectRequest)var3.next();
rmap = req.toMap();
if (rmap != null) {
list.add(rmap);
}
}
map.put("objects", list);
}
if (this._arguments != null) {
map.put("args", this._arguments);
}
if (this._result != null) {
map.put("result", this._result.toMap());
}
return map;
} catch (Throwable var10) {
throw var10;
}
}
public static void removeAll(List list, List values, boolean nocase) {
Object[] var6 = new Object[]{list, values, Conversions.booleanObject(nocase)};
try {
if (list == values) {
list.clear();
} else if (nocase) {
Iterator var3 = values.iterator();
while(var3.hasNext()) {
Object o = var3.next();
remove(list, o, nocase);
}
} else {
list.removeAll(values);
}
Object var10 = null;
} catch (Throwable var12) {
throw var12;
}
}
public static class AttributeRequest extends ProvisioningPlan.GenericRequest {
public AttributeRequest() {
}
public AttributeRequest(Map map) {
try {
this.fromMap(map);
} catch (Throwable var5) {
throw var5;
}
}
public AttributeRequest(String name, Object value) {
try {
this._name = name;
this._value = value;
} catch (Throwable var7) {
throw var7;
}
}
public AttributeRequest(String name, ProvisioningPlan.Operation op, Object value) {
Object[] var5 = new Object[]{name, op, value};
try {
this._name = name;
this._op = op;
this._value = value;
} catch (Throwable var10) {
throw var10;
}
}
public AttributeRequest(String name, ProvisioningPlan.Operation op, Object value, String assignmentId) {
this(name, op, value);
Object[] var6 = new Object[]{name, op, value, assignmentId};
try {
this._assignmentId = assignmentId;
} catch (Throwable var12) {
throw var12;
}
}
public AttributeRequest(ProvisioningPlan.AttributeRequest src) {
super(src);
}
public ProvisioningPlan.GenericRequest instantiate() {
try {
ProvisioningPlan.AttributeRequest var2;
ProvisioningPlan.AttributeRequest var3 = var2 = new ProvisioningPlan.AttributeRequest();
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public boolean isSecret() {
try {
boolean secret = false;
boolean declaredSecret = this.getBoolean("secret");
boolean appearsSecret = ProvisioningPlan.isSecret(this.getName());
secret = appearsSecret || declaredSecret;
return secret;
} catch (Throwable var8) {
throw var8;
}
}
public Object getValue(SailPointContext ctx) throws GeneralException {
try {
Object var10000;
Object var5;
if (this._value != null && this._value instanceof Reference) {
Reference ref = (Reference)this._value;
var10000 = var5 = ctx.getReferencedObject(ref.getClassName(), ref.getId(), ref.getName());
} else {
var10000 = var5 = this._value;
}
Object var6 = var10000;
return var5;
} catch (Throwable var8) {
throw var8;
}
}
public Map toMap() {
try {
Map map = new HashMap();
map.put("name", this._name);
map.put("value", this._value);
if (this._op != null) {
map.put("op", this._op.toString());
}
if (this._arguments != null) {
map.put("args", this._arguments);
}
if (this._result != null) {
map.put("result", this._result.toMap());
}
return map;
} catch (Throwable var6) {
throw var6;
}
}
public void fromMap(Map map) {
try {
this._name = Util.getString(map, "name");
this._value = map.get("value");
Object o = map.get("op");
if (o != null) {
this._op = (ProvisioningPlan.Operation)Enum.valueOf(ProvisioningPlan.Operation.class, o.toString());
}
o = map.get("args");
if (o instanceof Map) {
this._arguments = new Attributes();
this._arguments.putAll((Map)o);
}
o = map.get("result");
if (o instanceof Map) {
this._result = new ProvisioningResult((Map)o);
}
Object var5 = null;
} catch (Throwable var7) {
throw var7;
}
}
}
public static enum Operation {
Set,
Add,
Remove,
Revoke,
Retain;
private String messageKey;
private Operation(String messageKey) {
Object[] var5 = new Object[]{var1, Conversions.intObject(var2), messageKey};
try {
this.messageKey = messageKey;
} catch (Throwable var10) {
throw var10;
}
}
public String getMessageKey() {
try {
String var2;
String var3 = var2 = this.messageKey;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
static {
try {
Set = new ProvisioningPlan.Operation("Set", 0, "provisioning_plan_op_set");
Add = new ProvisioningPlan.Operation("Add", 1, "provisioning_plan_op_add");
Remove = new ProvisioningPlan.Operation("Remove", 2, "provisioning_plan_op_remove");
Revoke = new ProvisioningPlan.Operation("Revoke", 3, "provisioning_plan_op_revoke");
Retain = new ProvisioningPlan.Operation("Retain", 4, "provisioning_plan_op_retain");
} catch (Throwable var1) {
if (var1 instanceof ExceptionInInitializerError) {
throw (ExceptionInInitializerError)var1;
}
throw var1;
}
}
}
public static class AccountRequest extends ProvisioningPlan.AbstractRequest {
public static final String TYPE_ROLE = "role";
public static final String TYPE_ENTITLEMENT = "entitlement";
public static final String ATTACHMENTS = "attachments";
public static final String ATTACHMENT_CONFIG_LIST = "attachmentConfigList";
boolean _roleExpansion;
public AccountRequest() {
}
public AccountRequest(Map map) {
super(map);
}
public AccountRequest(ProvisioningPlan.AccountRequest src) {
super((ProvisioningPlan.AbstractRequest)src);
}
public AccountRequest(ProvisioningPlan.AccountRequest.Operation op, String app, String inst, String id) {
Object[] var6 = new Object[]{op, app, inst, id};
try {
this.setOperation(op);
this.setApplication(app);
this.setInstance(inst);
this.setNativeIdentity(id);
} catch (Throwable var12) {
throw var12;
}
}
public ProvisioningPlan.AbstractRequest instantiate() {
try {
ProvisioningPlan.AccountRequest var2;
ProvisioningPlan.AccountRequest var3 = var2 = new ProvisioningPlan.AccountRequest();
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public ProvisioningPlan.AccountRequest clone() {
try {
ProvisioningPlan.AccountRequest var2;
ProvisioningPlan.AccountRequest var3 = var2 = new ProvisioningPlan.AccountRequest(this);
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setOperation(ProvisioningPlan.AccountRequest.Operation op) {
try {
if (op != null) {
this.setOp((ProvisioningPlan.ObjectOperation)Enum.valueOf(ProvisioningPlan.ObjectOperation.class, op.toString()));
}
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public ProvisioningPlan.AccountRequest.Operation getOperation() {
try {
ProvisioningPlan.AccountRequest.Operation op = null;
ProvisioningPlan.ObjectOperation oop = this.getOp();
if (oop != null) {
op = (ProvisioningPlan.AccountRequest.Operation)Enum.valueOf(ProvisioningPlan.AccountRequest.Operation.class, oop.toString());
}
return op;
} catch (Throwable var7) {
throw var7;
}
}
public static enum Operation {
Create,
Modify,
Delete,
Disable,
Enable,
Unlock,
Lock;
private Operation() {
try {
} catch (Throwable var7) {
throw var7;
}
}
static {
try {
Create = new ProvisioningPlan.AccountRequest.Operation("Create", 0);
Modify = new ProvisioningPlan.AccountRequest.Operation("Modify", 1);
Delete = new ProvisioningPlan.AccountRequest.Operation("Delete", 2);
Disable = new ProvisioningPlan.AccountRequest.Operation("Disable", 3);
Enable = new ProvisioningPlan.AccountRequest.Operation("Enable", 4);
Unlock = new ProvisioningPlan.AccountRequest.Operation("Unlock", 5);
Lock = new ProvisioningPlan.AccountRequest.Operation("Lock", 6);
} catch (Throwable var1) {
if (var1 instanceof ExceptionInInitializerError) {
throw (ExceptionInInitializerError)var1;
}
throw var1;
}
}
}
}
public static enum ObjectOperation {
Create,
Modify,
Delete,
Disable,
Enable,
Unlock,
Lock,
Set;
private String messageKey;
private ObjectOperation(String messageKey) {
try {
this.messageKey = messageKey;
} catch (Throwable var10) {
throw var10;
}
}
public String getMessageKey() {
try {
String var2;
String var3 = var2 = this.messageKey;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
static {
try {
Create = new ProvisioningPlan.ObjectOperation("Create", 0, "resource_object_op_create");
Modify = new ProvisioningPlan.ObjectOperation("Modify", 1, "resource_object_op_modify");
Delete = new ProvisioningPlan.ObjectOperation("Delete", 2, "resource_object_op_delete");
Disable = new ProvisioningPlan.ObjectOperation("Disable", 3, "resource_object_op_disable");
Enable = new ProvisioningPlan.ObjectOperation("Enable", 4, "resource_object_op_enable");
Unlock = new ProvisioningPlan.ObjectOperation("Unlock", 5, "resource_object_op_unlock");
Lock = new ProvisioningPlan.ObjectOperation("Lock", 6, "resource_object_op_lock");
Set = new ProvisioningPlan.ObjectOperation("Set", 7, "resource_object_op_set");
} catch (Throwable var1) {
if (var1 instanceof ExceptionInInitializerError) {
throw (ExceptionInInitializerError)var1;
}
throw var1;
}
}
}
}

View File

@@ -0,0 +1,87 @@
package sailpoint.object;
@XMLClass
public class ProvisioningResult {
public static final String STATUS_QUEUED = "queued";
public static final String STATUS_COMMITTED = "committed";
public static final String STATUS_FAILED = "failed";
public static final String STATUS_RETRY = "retry";
String _targetIntegration;
String _status;
ResourceObject _object;
public ProvisioningResult() {
}
public String getTargetIntegration() {
try {
String var2;
String var3 = var2 = this._targetIntegration;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setTargetIntegration(String s) {
try {
this._targetIntegration = s;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public String getStatus() {
try {
String var2;
String var3 = var2 = this._status;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public void setStatus(String s) {
try {
if ("success".equals(s)) {
s = "queued";
} else if ("committed".equals(s)) {
s = "committed";
} else if ("failure".equals(s)) {
s = "failed";
} else if ("retry".equals(s)) {
s = "retry";
} else if ("warning".equals(s)) {
log.warn("STATUS_WARNING found in RequestResult");
s = "committed";
} else if ("notStarted".equals(s)) {
log.warn("STATUS_NOT_STARTED found in RequestResult");
s = "queued";
} else if ("inProcess".equals(s)) {
log.info("STATUS_IN_PROCESS found in RequestResult");
s = "queued";
}
this._status = s;
Object var4 = null;
} catch (Throwable var6) {
throw var6;
}
}
public ResourceObject getObject() {
try {
ResourceObject var2;
ResourceObject var3 = var2 = this._object;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
}

View File

@@ -0,0 +1,185 @@
package sailpoint.object;
import java.util.Iterator;
import java.util.List;
public class QueryOptions {
private List<QueryOptions.Ordering> _orderings;
private List<Filter> _filters;
private boolean _distinct;
private int _resultLimit;
private int _firstRow;
private List<String> _groupBys;
private List<Filter> _scopeExtensions;
private Boolean _scopeResults;
private Boolean _unscopedGloballyAccessible;
private String _query;
private boolean _cacheResults;
private boolean _flushBeforeQuery;
public QueryOptions addFilter(Filter f) {
return this.add(f);
}
public QueryOptions add(Filter... res) {
if (res != null) {
for (int i = 0; i < res.length; ++i) {
Filter f = res[i];
if (f != null) {
this._filters.add(f);
}
}
}
return this;
}
public QueryOptions setOrderBy(String name) {
if (this._orderings.size() > 1) {
throw new RuntimeException("Cannot set orderBy when multiple orderings have been added - use addOrdering()");
} else {
if (1 == this._orderings.size()) {
QueryOptions.Ordering ordering = (QueryOptions.Ordering) this._orderings.get(0);
if (null != ordering.getColumn()) {
throw new RuntimeException("The orderBy has already been set.");
}
ordering.setColumn(name);
} else {
this._orderings.add(new QueryOptions.Ordering(name, true));
}
return this;
}
}
public QueryOptions setOrderAscending(boolean b) {
if (this._orderings.size() > 1) {
throw new RuntimeException("Cannot set ascending when multiple orderings have been added - use addOrdering()");
} else {
if (1 == this._orderings.size()) {
((QueryOptions.Ordering) this._orderings.get(0)).setAscending(b);
} else {
this._orderings.add(new QueryOptions.Ordering((String) null, b));
}
return this;
}
}
public void setDistinct(boolean b) {
this._distinct = b;
}
public QueryOptions setResultLimit(int limit) {
this._resultLimit = limit;
return this;
}
public int getFirstRow() {
return this._firstRow;
}
public QueryOptions addOrdering(String name, boolean ascending) {
return this;
}
public List<Filter> getFilters() {
return this._filters;
}
public void setFilters(List<Filter> filters) {
this._filters = filters;
}
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append("Filters: ");
sb.append(this.getFiltersString(this._filters));
sb.append(", Scope extensions: ");
sb.append(this.getFiltersString(this._scopeExtensions));
sb.append(",scope results [" + this._scopeResults + "]");
sb.append(",unscoped globally accessible [" + this._unscopedGloballyAccessible + "]");
if (this._orderings != null) {
sb.append(",Ordering ==" + this._orderings.toString() + "");
}
if (this._groupBys != null) {
sb.append(",Group by == " + this._groupBys.toString());
}
sb.append(",Query [" + this._query + "]");
sb.append(",ResultLimit [" + this._resultLimit + "]");
sb.append(",First Row [" + this._firstRow + "]");
sb.append(",Distinct [" + this._distinct + "]");
sb.append(",Cache results [" + this._cacheResults + "]");
sb.append(",Flush before query [" + this._flushBeforeQuery + "]");
return sb.toString();
}
private String getFiltersString(List<Filter> filters) {
StringBuilder sb = new StringBuilder();
if (filters != null && filters.size() > 0) {
int i = 1;
Iterator var4 = filters.iterator();
while (var4.hasNext()) {
Filter filter = (Filter) var4.next();
sb.append("Filter [" + i++ + "] == " + filter.getExpression() + "\n");
}
} else {
sb.append("none defined");
}
String var8;
String var9 = var8 = sb.toString();
return var8;
}
public static class Ordering {
private String column;
private boolean ascending;
private boolean ignoreCase;
public Ordering(String column, boolean ascending, boolean ignoreCase) {
this.column = column;
this.ascending = ascending;
this.ignoreCase = ignoreCase;
}
public Ordering(String column, boolean ascending) {
this.column = column;
this.ascending = ascending;
this.ignoreCase = false;
}
public String getColumn() {
return this.column;
}
public void setColumn(String column) {
this.column = column;
}
public boolean isAscending() {
return this.ascending;
}
public void setAscending(boolean ascending) {
this.ascending = ascending;
}
public boolean isIgnoreCase() {
return this.ignoreCase;
}
public String toString() {
return this.column + " " + (this.ascending ? "ascending" : "descending");
}
}
}

View File

@@ -0,0 +1,34 @@
package sailpoint.object;
/**
* Read-only representation of account data that has been aggregated. Use this as a basis to determine correlation linkages with a specific identity.
*/
public class ResourceObject {
/**
*
* @return
*/
public String getIdentity() {
return "identity";
}
/**
* Get the attribute value provided as a string
* @param name The name of the attribute to retrieve
* @return the string value of the given attribute name
*/
public String getStringAttribute(String name) {
return "stringAttribute";
}
/**
* Get the attribute value provided as a string
* @param name The name of the attribute
* @return the string value of the given attribute name
*/
public String getString(String name) {
return "string";
}
}

View File

@@ -0,0 +1,34 @@
package sailpoint.object;
public class RoleAssignment{
String _roleId;
String _roleName;
public RoleAssignment() {
}
public String getRoleId() {
try {
String var2;
String var3 = var2 = this._roleId;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
public String getRoleName() {
try {
String var2;
String var3 = var2 = this._roleName;
return var2;
} catch (Throwable var5) {
throw var5;
}
}
}

View File

@@ -0,0 +1,36 @@
package sailpoint.object;
import java.util.ArrayList;
import java.util.List;
public class Schema {
public String getObjectType() {
return "objectType";
}
public String getNativeObjectType() {
return "nativeObject";
}
public List<AttributeDefinition> getAttributes() {
return new ArrayList<AttributeDefinition>();
}
public String getDisplayAttribute() {
return "displayAttribute";
}
public String getIdentityAttribute() {
return "identityAttribute";
}
public AttributeDefinition getAttributeDefinition(String name) {
return new AttributeDefinition();
}
public List<String> getEntitlementAttributeNames() {
return new ArrayList<>();
}
}

View File

@@ -0,0 +1,133 @@
/*
* Copyright (C) 2019 SailPoint Technologies, Inc., All Rights Reserved.
*/
package sailpoint.rule;
import java.util.HashMap;
import java.util.Map;
/**
* Definition of an Account interface available to Rule implementors.
*/
public class Account {
/**
* Gets the native identity of the account.
*
* @return The native identity.
*/
public String getNativeIdentity() {
return "nativeIdentity";
}
/**
* Gets the UUID of the account.
*
* @return The UUID or null if does not exist.
*/
public String getUuid() {
return "uuid";
}
/**
* Gets the id of the source the account is on.
*
* @return The source id.
*/
public String getSourceId() {
return "sourceId";
}
/**
* Gets the id of the identity that owns the source.
*
* @return The identity id.
*/
public String getIdentityId() {
return "identityId";
}
/**
* Gets the raw attributes of the account.
*
* @return The attributes.
*/
public Map<String, Object> getAttributes() {
return new HashMap<>();
}
/**
* Determines whether or not the account is authoritative.
*
* @return True if authoritative, false otherwise.
*/
public boolean isAuthoritative() {
return false;
}
/**
* Gets the description of the account.
*
* @return The description.
*/
public String getDescription() {
return "description";
}
/**
* Determines whether or not the account is disabled.
*
* @return True if the account is disabled, false otherwise.
*/
public boolean isDisabled() {
return false;
}
/**
* Determines whether or not the account is locked.
*
* @return True if the account is locked, false otherwise.
*/
public boolean isLocked() {
return false;
}
/**
* Determines whether or not the account is a system account. An account is a system account
* when it is on the IdentityNow application.
*
* @return True if the account is a system account, false otherwise.
*/
public boolean isSystemAccount() {
return false;
}
/**
* Determines whether or not the account is uncorrelated.
*
* @return True if the account is uncorrelated, false otherwise.
*/
public boolean isUncorrelated() {
return false;
}
/**
* Determines whether or not the account was manually correlated.
*
* @return True if the account was manually correlated, false otherwise.
*/
public boolean isManuallyCorrelated() {
return false;
}
/**
* Determines whether or not the account has entitlements.
*
* @return True if the account has entitlements, false otherwise.
*/
public boolean hasEntitlements() {
return false;
}
}

View File

@@ -0,0 +1,125 @@
package sailpoint.rule;
import java.util.Map;
/**
* Definition of a User interface available to Rule implementors.
*/
public interface Identity {
/**
* Get the internal name of the User.
* @return the internal name
*/
String getName();
/**
* Get the display name of the identity
* @return The displayName
*/
String getDisplayName();
/**
* Get the internal unique identifier.
* @return The id
*/
String getId();
/**
* Get the first name of the User.
* @return The FirstName
*/
String getFirstName();
/**
* Get the last name of the User.
* @return The LastName
*/
String getLastName();
/**
* Get the phone of the User.
* @return The phone
*/
String getPhone();
/**
* Get the work phone of the User.
* @return The work phone
*/
String getWorkPhone();
/**
* Get the personal email of the User.
* @return The personal email address
*/
String getPersonalEmail();
/**
* Get the work email of the User.
* @return The work email
*/
String getEmail();
/**
* Get the current lifecycle state of the User.
* @return The lifecycle state
*/
String getLifecycleState();
/**
* Get the raw attributes of the User.
*
* @return The map attributes derived from attribute promotion.
*/
Map<String, Object> getAttributes();
/**
* Get the uid of the USer;
* @return The Uid
*/
String getUid();
/**
* Check to see if the current user has reports and is a manager.
* @return true if the User is a manager, false otherwise
*/
boolean isManager();
/**
* The internal ID of the manager for this User.
* @return The internal ID of the manager
*/
String getManagerId();
/**
* Gets the name of the user's manager.
* @return The name of the manager
*/
String getManagerName();
/**
* Get the country of the user
* @return The country
*/
String getCountry();
/**
* Get the user's employee number;
* @return The employee number
*/
String getEmployeeNumber();
/**
* Get the user's specified attribute as a string
* @return The attribute string
*/
String getStringAttribute(String attributeName);
/**
* Get the user's specified attribute as an object
* @return The attribute object
*/
Object getAttribute(String attributeName);
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright (C) 2021 SailPoint Technologies, Inc., All Rights Reserved.
*/
package sailpoint.rule;
import java.util.Map;
/**
* Model to represent MangedAttribute "view" returned by IdnRuleUtil.
*/
public class ManagedAttributeDetails {
private String description;
private Map<String, Object> attributes;
private String name;
private String value;
private String type;
public String getDescription() {
return description;
}
public Map<String, Object> getAttributes() {
return attributes;
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
public String getType() {
return type;
}
}

File diff suppressed because it is too large Load Diff