cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Provisioning to a JDBC Source via an external jar

Provisioning to a JDBC Source via an external jar

Disclaimer: Some information in this article may be outdated, please verify details by referring to latest resources or reach out to our technical teams.

Introduction

In an effort to better enable both partners and customers, we have outlined a process that allows technically savvy customers the ability to make modifications to their JDBC provisioning rule without directly engaging IdentityNow's Expert Services team. We do not recommend this approach if you do not have the correct technical resources on hand with at least an intermediate level knowledge of Java.

 

Prerequisites

  1. A functional JDBC source that is aggregating accounts into IdentityNow successfully.
  2. A JDBC Driver jar attached to the Source Config. (see Required JDBC Driver JAR Files)
  3. Eclipse or another IDE able to import Maven projects.
  4. The 'identityiq.jar' to import into your IDE. (Attached at the bottom).
  5. Intermediate knowledge of Java.
  6. Understanding of Account and Attribute requests within an IdentityNow provisioning plan.

 

Elements of the project

  1. JDBC Rule Adapter- This is the rule that will still be needed to be uploaded to your org by Expert Services or Professional Services. Essentially, this rule calls a 'provision' method in an attached jar and all the logic is built there. Getting passed into the method is the application, the connection to the database, the plan, and an *optional* log file. An example is attached below.
  2. Primary Java class- This is the main class that we will be using in our example. This is essentially the tunneling and logic portion of the code. It is the home of the 'provision' method, receives the account and attribute requests and directs the request to the appropriate calls in the auxiliary class in the project. (In the attached project, this is TestDemo.java)
  3. Auxiliary Java class- This is the class that executes stored procedures or (in this projects case) prepared statements to the target source and contains the methods that are called from the Primary Java class. In this project, it is called database.java

 

Building a project structure

Within Eclipse, or any other IDE, your file structure should be as follows:

 

Project Structure

 

Make sure that you have imported the 'identityiq.jar' and you can see it in your Maven dependencies.

 

Elements of the Primary Java class

This is the foundation that handles our project. Every request initially comes here and then calls other methods.

 

  1. Provision Method- This breaks down the request and calls the appropriate method for the operation:
    Provision Method
  2. Operation methods- These exist for every operation (Create, Modify, Enable, Disable).
    Create Method
  3. Now that a request has come in and we have defined it's type, we need to call the Auxiliary Java class in our project.

 

Elements of the Auxiliary Java class

  1. Static Final strings- We create both public and private final strings in order to streamline interacting with the database. This may include the query string and/or constants in the project.

    Constants
  2. Working methods- These are the working methods in the class. We have received the request, determined where it should go, and now need to execute it. Notice that it's simply a prepared statement that calls a final string

    Create Worker Method

Clean Compile Package

The next step is to compile your Maven package. Upload the jar that is created to the source config.

Upload screen

 

Final Notes:

JDBC Rules can be very complicated depending on the source you are trying to connect to. We STRONGLY recommend that if you have any questions, bring them up to the Expert Services team for assistance.

Labels (1)
Attachments
Comments

Hello @leenaraj  The issue is not fixed, I had raised this ticket to support team however no response from their side. A little disappointed.

Case - CS0211476 - Customer Support (sailpoint.com)

BTW: for the option1, it worked from my side now. however it is hard to develop/test/degug, so i would like to try this second solution.

https://community.sailpoint.com/t5/IdentityNow-Wiki/IdentityNow-Rule-Guide-JDBC-Provision-Rule/ta-p/...

Hi @Michael_Tai Until yesterday I was facing the issue where it was always picking the original jar, not the newly uploaded one. However, I just retried today and it is working totally fine, I can see it's picking the new jar.

Can you also retry it once and confirm if it's working for you now?

@leenaraj Thanks for sharing this.

From my side, even we tried to change the jar name/update some basic source information, however it does not work...

can we connect some times today or tomorrow? Not sure how we can connect in this community..

BTW: What kinds of changes you did recently ?

There are some recommendations from the SailPoint trainers, maybe we can raise support tickets to let sailpoint devops to remove the jars from backend, then we can re-try and i had done this just now, Let us see then @leenaraj 

We are facing similar issue since last week, is there any solution suggested by Sailpoint? @Michael_Tai @leenaraj 

@Anshu_Kunal  There is no solution at the moment, we were trying to remove jar with SailPoint devops help from backend to see whether this issue had been fixed.

Hi @Michael_Tai @Anshu_Kunal , I had opened the support ticket for the same and it's fixed now. Please retry again by removing the old jar, save it and add the new jar. Also, you can run this command 'sudo docker exec ccg ls -l /opt/sailpoint/ccg/lib/custom' to check if the new jar is added.

Thanks for sharing @leenaraj  We tried and find that orginial jar and it means that the updated jar does not uploaded in the pathe as your mentioned.  Currently we do not have any permision on deleting since it is in the root folder. Which options you did and may i know what kinds of support case you raised and what kind of actions that SailPoint supported team did.

sudo docker exec ccg ls -l /opt/sailpoint/ccg/lib/custom

Version history
Revision #:
2 of 2
Last update:
‎Sep 04, 2024 04:29 PM
Updated by:
 
Contributors