DmitryKubahov / sail-point-customization-parent

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SailPoint customization

Idea

The main idea of this project: auto-generation xml objects from java classes. Let see pros&cons:

+

  1. Sources are java classes - use standard helpers (sonarLint, checkStyles, reformatting codes, etc) for writing good code and avoid dumb errors

  2. Writing tests (use junit, mockito, jmockit)

  3. Statistics of code - tests coverage, duplications, etc.

  4. OOP

  5. Debugging of execution

As for cons: there is only 1 - need to redeploy, but using HotSwapAgent can minimize (or completely remove) it.

Description

Project used as an example of using auto-generation xml from java classes.

At the current moment implementation covers:

  • Rules

    • Connector rules:

      • ✓ PreIterate

      • ✓ BuildMap

      • ✓ JDBCBuildMap

      • ✓ SAPBuildMap

      • ✓ SAPHRManagerRule

      • ✓ PeopleSoftHRMSBuildMap

      • ✓ FileParsingRule

      • ✓ MergeMaps

      • ✓ Transformation

      • ✓ PostIterate

      • ✓ WebServiceBeforeOperationRule

      • ✓ WebServiceAfterOperationRule

      • ✓ RACFPermissionCustomization

    • Certification rules:

    • ✓ IdentityTrigger

Follow SailPoint-improved for getting new implementations.

Structure

Project contains 2 modules:

  1. sail-point-customization - main project. Contains all classes for SailPoint objects

  2. ssb - SSB project for building identity.war

Important
SSB project must be configured by developers needs: version of identity, paths, etc.

Starting

Before stating using this project need to do 2 manual jobs:

  1. add custom dependencies to local maven repository. Follow these steps:

  2. extract SSB project

After these steps project will be ready for building.

Adding custom libs

  1. Download extra-libs. This archive contains following jars:

    1. sail-point-annotation - only annotations for auto generating xmls

    2. sail-point-annotation-processor - annotation processors for xml generating

    3. sail-point-improved - implementation of SailPoint objects

    4. 2 poms: sail-point-annotation-parent and sail-point-improved-parent projects

  2. Download identityiq.jar and connection-bundle.jar from identityiq.zip file. These files can be found in identityiq,war from SailPoint Compass site.

  3. Copy all these files to project`s directory: bin

  4. Run identity_iq_improved_local_mvn.sh in bin directory. This script adds all extra jars to local maven repository

Extract SSB project

  1. Download SSB archive from SailPoint Compass site

  2. Extract it to ssb module

Example

As for implementation this project contains only connections rules without specific logic. This is just example of how it works.

sail-point-customization via annotation-processors generate xml from java classes (only rules right now) to ssb/config/Rule. It can be customized via pom.xml in sail-point-customization - attribute: generationPath

ssb project contains only 3 files:

  1. .gitignore - to ignore all files in ssb\

  2. iiqCustomBeans.xml - spring beans configuration files for overriding 'ruleRunner' bean.

  3. pom.xml - maven project model

For building identity.war use 'war' maven profile

mvn clean install -Pwar

Building steps

  1. clean - clean default maven projects directory and:

    1. ssb/config/Rule - remove all xml from it (can be configured in main pom)

    2. ssb/build - clean build identity folder (can be configured in main pom)

    3. delete improved and customization libs from ssb/web/WEB-INF/lib (can be configured in ssb module pom)

      1. sail-point-annotation

      2. sail-point-improved

      3. sail-point-customization

    4. delete spring beans configuration file (iiqCustomBeans.xml) from ssb/web/WEB-INF/classes (can be configured in ssb module pom)

  2. install - generates xmls for rules, installs jars to local repository, runs ant task to build war in ssb project.

    1. sail-point-customization

      1. generate xml for rule to ssb/config/Rule (can be configured in sail-point-customization projects pom)

      2. install sail-point-customization jar to local maven repository

    2. ssb

      1. copy improved and customization jars to ssb/web/WEB-INF/lib (can be configured in ssb module pom)

      2. copy spring beans configuration file (iiqCustomBeans.xml) to ssb/web/WEB-INF/classes (can be configured in ssb module pom)

      3. execute

        ant main war

        in ssb project (can be configured in ssb module pom)

About


Languages

Language:Java 90.0%Language:Shell 10.0%