Skip to content

Commit d9528da

Browse files
authored
Merge pull request #429 from oracle-devrel/oig-access-term-notification
Add access-termination-notification scheduled task sample for OIG
2 parents 51ebfa0 + 28244ec commit d9528da

File tree

5 files changed

+500
-0
lines changed

5 files changed

+500
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Copyright (c) 2023 Oracle and/or its affiliates.
2+
3+
The Universal Permissive License (UPL), Version 1.0
4+
5+
Subject to the condition set forth below, permission is hereby granted to any
6+
person obtaining a copy of this software, associated documentation and/or data
7+
(collectively the "Software"), free of charge and under any and all copyright
8+
rights in the Software, and any and all patent rights owned or freely
9+
licensable by each licensor hereunder covering either (i) the unmodified
10+
Software as contributed to or provided by such licensor, or (ii) the Larger
11+
Works (as defined below), to deal in both
12+
13+
(a) the Software, and
14+
(b) any piece of software and/or hardware listed in the lrgrwrks.txt file if
15+
one is included with the Software (each a "Larger Work" to which the Software
16+
is contributed by such licensors),
17+
18+
without restriction, including without limitation the rights to copy, create
19+
derivative works of, display, perform, and distribute the Software and make,
20+
use, sell, offer for sale, import, export, have made, and have sold the
21+
Software and the Larger Work(s), and to sublicense the foregoing rights on
22+
either these or other terms.
23+
24+
This license is subject to the following condition:
25+
The above copyright notice and either this complete permission notice or at
26+
a minimum a reference to the UPL must be included in all copies or
27+
substantial portions of the Software.
28+
29+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35+
SOFTWARE.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Access Termination Notification Scheduled Task
2+
3+
This asset contains the code and deployment items for a scheduled task designed to notify users and their managers of any expiring access. It uses standard OIG APIs to handle email composition and dispatch (tcEmailNotificationUtil).
4+
5+
In case access extensions or a more complex handling of email contents are also required, please refer to the [Access Extension Notification Scheduled Task](https://github.com/oracle-devrel/technology-engineering/tree/main/security/identity-and-access-management/oracle-identity-governance/scheduled-task-samples/access-extension-notification).
6+
7+
Developed on and compatible with OIG 11g R2 PS3 and above.
8+
9+
## When to use this asset?
10+
11+
When there's a need to provide or demonstrate the functionality described above or something similar, which can be adapted from the provided code.
12+
13+
## How to use this asset?
14+
15+
### Building and deployment
16+
17+
Here's a short build and deployment checklist:
18+
19+
1. Import any additional artifacts using deployment manager, such as the `Access_Termination_Template.xml` file
20+
2. Generate a jar file containing the sample code.
21+
3. Upload the jar file to an OIG environment using OIG's command line "Jar Upload" utility. Also remember to upload the dependencies as "3. ThirdParty" jars.
22+
4. Use the Enterprise Manager web interface to upload the scheduled task metadata/definition into the MDS repository.
23+
5. Create a scheduled task in OIG based on the uploaded definition.
24+
25+
Please see the useful link below for detailed build and deployment steps.
26+
27+
### Executing the scheduled task
28+
29+
The following items need to be populated as part of the scheduled job parameters:
30+
- Days Before Expiration: Number of days before the email is sent, e.g. 7
31+
- Email Template Name: Email template name for the email, e.g. Access_Termination_Template
32+
33+
[Consult this section](https://docs.oracle.com/en/middleware/idm/identity-governance/12.2.1.4/omusg/managing-jobs-1.html#GUID-71BB3623-AEE2-4F64-BBD4-D921DCA39D7C) on how to manually start or schedule a job.
34+
35+
## Useful Links
36+
37+
[Oracle Identity Governance developer's guide - Developing scheduled tasks](https://docs.oracle.com/en/middleware/idm/identity-governance/12.2.1.4/omdev/developing-scheduled-tasks.html#GUID-F62EF833-1E70-41FC-9DCC-C1EAB407D151)
38+
39+
# License
40+
41+
Copyright (c) 2023 Oracle and/or its affiliates.
42+
43+
Licensed under the Universal Permissive License (UPL), Version 1.0.
44+
45+
See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<scheduledTasks xmlns="http://xmlns.oracle.com/oim/scheduler">
3+
<task>
4+
<name>Access Termination Notification</name>
5+
<class>com.oracle.sample.AccessTerminationNotification</class>
6+
<description>Access Termination Notification</description>
7+
<retry>1</retry>
8+
<parameters>
9+
<string-param required="true" encrypted="false" helpText="Number of days before the email is sent.">Days Before Expiration</string-param>
10+
<string-param required="true" encrypted="false" helpText="Email template name for the email.">Email Template Name</string-param>
11+
</parameters>
12+
</task>
13+
</scheduledTasks>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?xml version = '1.0' encoding = 'UTF-8'?>
2+
<xl-ddm-data version="12.2.1.4.0" user="XELSYSADM" database="" exported-date="1694515569790" description="Access_Termination_Template"><NOTIFICATIONTEMPLATE repo-type="RDBMS" name="Access_Termination_Template"><CREATEUSER>1</CREATEUSER><CREATIONDATE>1614848134174</CREATIONDATE><DATALEVEL>0</DATALEVEL><EVENTNAME>EndDateNotificationEvent</EVENTNAME><LASTUSER>xelsysadm</LASTUSER><LASTUPDATED>1614849641138</LASTUPDATED><LOCALTEMPLATE repo-type="RDBMS" id="LOCALTEMPLATE501"><CREATEUSER>1</CREATEUSER><CONTENTTYPE>text/plain</CONTENTTYPE><CREATIONDATE>1614848134282</CREATIONDATE><LOCALE>en_US</LOCALE><DATALEVEL>0</DATALEVEL><ENCODING>UTF-8</ENCODING><SUBJECT>Your access is expiring</SUBJECT><LONGMESSAGE>Hi $display_name,
3+
4+
Some of your access is expiring in $days day(s). Please find below a list of expiring access items.
5+
6+
$expiring_items
7+
Please also note that a copy of this email will also be sent to your direct manager.
8+
9+
Kind regards,
10+
Your friendly OIM admin</LONGMESSAGE><LASTUSER>xelsysadm</LASTUSER><LASTUPDATED>1614849641156</LASTUPDATED></LOCALTEMPLATE></NOTIFICATIONTEMPLATE></xl-ddm-data>

0 commit comments

Comments
 (0)