[{
"pattern": "System\\.(out|err)\\.print", "message": "Remove any System.out configurations in favor of logging statements.", "type": "warning" }, { "pattern": "\\.printStackTrace\\(", "message": "Detected instances of printStackTrace(...). Remove this reference.", "type": "warning" }, { "pattern": "public static", "message": "Remove references to 'static' in methods. This can cause unexpected behavior.", "type": "warning" }, { "pattern": "(<Source>)((?!<\\!\\[CDATA\\[).)*\\s?$", "message": "Correct tag to be <Source><![CDATA[", "type": "warning" }, { "pattern": "^(\\s)?(\\<\\/Source\\>)", "message": "Correct tag to be ]]></Source>", "type": "warning" }, { "pattern": ">", "message": "Detected instances of '>' Convert to '>'.", "type": "warning" }, { "pattern": "<", "message": "Detected instances of '<' Convert to '<'.", "type": "warning" }, { "pattern": "&", "message": "Detected instances of '&' Convert to '&'.", "type": "warning" }, { "pattern": "context\\.decrypt(\\s)?\\(", "message": "Remove references to 'decrypt'. This is not allowed.", "type": "error" }, { "pattern": "context\\.commitTransaction(\\s)?\\(", "message": "Remove references to 'commitTransaction'. This is not allowed.", "type": "error" }, { "pattern": "context\\.saveObject(\\s)?\\(", "message": "Remove references to 'saveObject'. This is not allowed.", "type": "error" }, { "pattern": "context\\.authenticate(\\s)?\\(", "message": "Remove references to 'authenticate'. This is not allowed.", "type": "error" }, { "pattern": "context\\.close(\\s)?\\(", "message": "Remove references to 'close'. This is not allowed.", "type": "error" }, { "pattern": "context\\.decache(\\s)?\\(", "message": "Remove references to 'decache'. This is not allowed.", "type": "error" }, { "pattern": "context\\.encrypt(\\s)?\\(", "message": "Remove references to 'encrypt'. This is not allowed.", "type": "error" }, { "pattern": "context\\.getJdbcConnection(\\s)?\\(", "message": "Remove references to 'getJdbcConnection'. This is not allowed.", "type": "error" }, { "pattern": "context\\.impersonate(\\s)?\\(", "message": "Remove references to 'impersonate'. This is not allowed.", "type": "error" }, { "pattern": "context\\.importObject(\\s)?\\(", "message": "Remove references to 'importObject'. This is not allowed.", "type": "error" }, { "pattern": "XMLObjectFactory\\.getInstance()\\.toXml\\(*\\)", "message": "Remove references to XMLObjectFactory.getInstance().toXml(...).", "type": "error" }, { "pattern": "\\.toXml(\\s)?\\(*\\)", "message": "Remove references to 'toXml'. This is not allowed.", "type": "error" }, { "pattern": "Thread\\.", "message": "Remove references to 'Thread'. This is not allowed.", "type": "error" }, { "pattern": "Runnable\\.", "message": "Remove references to 'Runnable'. This is not allowed.", "type": "error" }, { "pattern": "context\\.lockObject(\\s)?\\(", "message": "Remove references to 'lockObject'. This is not allowed.", "type": "error" }, { "pattern": "context\\.lockObjectById(\\s)?\\(", "message": "Remove references to 'lockObjectById'. This is not allowed.", "type": "error" }, { "pattern": "context\\.lockObjectByName(\\s)?\\(", "message": "Remove references to 'lockObjectByName'. This is not allowed.", "type": "error" }, { "pattern": "context\\.notify(\\s)?\\(", "message": "Remove references to 'notify'. This is not allowed.", "type": "error" }, { "pattern": "context\\.notifyAll(\\s)?\\(", "message": "Remove references to 'notifyAll'. This is not allowed.", "type": "error" }, { "pattern": "context\\.printStatistics(\\s)?\\(", "message": "Remove references to 'printStatistics'. This is not allowed.", "type": "error" }, { "pattern": "context\\.reconnect(\\s)?\\(", "message": "Remove references to 'reconnect'. This is not allowed.", "type": "error" }, { "pattern": "context\\.removeObject(\\s)?\\(", "message": "Remove references to 'removeObject'. This is not allowed.", "type": "error" }, { "pattern": "context\\.removeObjects(\\s)?\\(", "message": "Remove references to 'removeObjects'. This is not allowed.", "type": "error" }, { "pattern": "context\\.rollbackTransaction\\(", "message": "Remove references to 'rollbackTransaction'. This is not allowed.", "type": "error" }, { "pattern": "context\\.runRule(\\s)?\\(", "message": "Remove references to 'runRule'. This is not allowed.", "type": "error" }, { "pattern": "context\\.runScript(\\s)?\\(", "message": "Remove references to 'runScript'. This is not allowed.", "type": "error" }, { "pattern": "context\\.sendEmailNotification(\\s)?\\(", "message": "Remove references to 'sendEmailNotification'. This is not allowed.", "type": "error" }, { "pattern": "TimeZone\\.setTimeZone\\(", "message": "Setting TimeZones is not supported.", "type": "error" }, { "pattern": "identity\\.getLinks(\\s)?\\(", "message": "The function 'getLinks' is deprecated. Use an identity search instead.", "type": "error" }, { "pattern": "^(\\s)?(<Rule)(.*?)(type=)('|\")(ResourceObjectCustomization)('|\")", "message": "Unsupported Rule Type: ResourceObjectCustomization rules are not supported, and cannot be submitted.", "type": "error" }, { "pattern": "^(\\s)?(<Rule)(.*?)(type=)('|\")(Integration)('|\")", "message": "Unsupported Rule Type: Integration rules are not supported. Consider implementation of a BeforeProvisioning rule instead.", "type": "error" }, { "pattern": "^(\\s)?(<Rule)(.*?)(type=)('|\")(?!(IdentityAttribute|AttributeGenerator|AttributeGeneratorFromTemplate|Correlation|ManagerCorrelation|BeforeProvisioning|ConnectorAfterCreate|ConnectorAfterModify|BuildMap|JDBCBuildMap|JDBCProvisioning|SAPBuildMap|SapHrOperationProvisioning|WebServiceBeforeOperation|WebServiceAfterOperation))('|\")", "message": "Unsupported Rule Type: This type of rule is not supported. See the IdentityNow Rule Guide for more details on supported rules.", "type": "error" }, { "pattern": "^(\\s)?(<Rule)(.*?)(type=)('|\")(CertificationExclusion)('|\")", "message": "Deprecated Rule Type: CertificationExclusion rules are deprecated. Consider configuration via certification campaign filters instead.", "type": "warning" }, { "pattern": "^(\\s)?(<Rule)(.*?)(type=)('|\")(IdentitySelector)('|\")", "message": "Deprecated Rule Type: IdentitySelector rules are deprecated. Consider configuration via rule assignment criteria instead.", "type": "warning" }, { "pattern": "(context\\.)(getObjectByName|getObjectById|getObjects|getObject)(.*?)(\\s)?(\\()+(\\s)?(?!((\\s)?(sailpoint\\.object\\.)?(Identity|Link)))", "message": "Cannot get objects other than sailpoint.object.Identity or sailpoint.object.Link objects.", "type": "error" }, { "pattern": "Log4j", "message": "Do not declare your own loggers.", "type": "error" }, { "pattern": "(context\\.search)(\\s)?(\\()+(\\s)?(?!((\\s)?(sailpoint\\.object\\.)?(Identity|Link)))", "message": "Only sailpoint.object.Identity or sailpoint.object.Link objects are searchable.", "type": "error" }
]