In this post, I will list some of the server tuning parameter that can be used to tune oim managed server.
JVM Memory
For Hotspot JVM
Min Heap Size(Xms) = 4GB, Max Heap Size(Xmx) = 8GB, PermSize(-X:PermSize) = 500m and PermGen size (-XX:MaxPermSize) = 1 GB.
For JRockit JVM
Min Heap Size(Xms) = 4GB, Max Heap Size(Xmx) = 8GB, PermSize(-X:PermSize) = N/A and PermGen size (-XX:MaxPermSize) = N/A
To change the JVM memory setting:
1. If your OIM version is 11.1.2.1.0 or above, use DOMAIN_HOME/bin/setOIMDomainEnv.sh
(Unix) or setOIMDomainEnv.cmd (Windows). If not, continue to use
DOMAIN_HOME/bin/setDomainEnv.sh (Unix) or setDomainEnv.cmd (Windows) to
change the heap size settings.
2. Change the value of DEFAULT_MEM_ARGS and PORT_MEM_ARGS from the default value and
save.
3. Restart OIM Server
The blog covers various articles and posts on Cloud, Big Data Analytics, Data Science, Machine Learning, DevOps, Full Stack Development, Java and Middleware Technologies
Monday, October 19, 2015
Saturday, October 17, 2015
OIM 11G R2 PS2 (11.1.2.2.X) Submit Buttion Action Listener Sample Code
In this post , I will be sharing some sample code related to submit action listener that gets invoked every time you hit the submit button on the request page.
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
Labels:
OIM
Friday, October 16, 2015
OIM and OIA SSL Setup and keytool and orapki commands
keytool -importcert -alias youranyaliasname -trustcacerts -file /tmp/deepak/dubey/filename.pem -keystore /tmp/deepak/dubey/mycustomkeystore.jks
on oim admin console
hostname verification to none
update xlconfig.xml to t3s and ssl port
copy 3 jar files
webservices+ssl.jar
jcryptoj.jar
change the keystores in OIA weblogic from the demo keystores to OIM's custom keystores
OHS to OIM mod_wl_ohs.conf
<Location /identity>
SetHandler weblogic-handler
WLCookieName oimjsessionid
WebLogicHost deepak.dubey.com
WebLogicPort 14001
Debug ALL
SecureProxy ON
WlSSLWallet "/tmp/deepak/dubey/wallets/ohs_proxy_ssl_wallet"
WLIOTimeoutSecs 600
Idempotent OFF
WLSRequest ON
WLProxySSL ON
WLProxySSLPassThrough ON
</Location>
change ssl.conf
SSLWallet "/tmp/deepak/dubey/wallets/ohswallet"
./orapki wallet create -wallet /tmp/deepak/dubey/wallets/ohswallet -auto_login_only
./orapki wallet add -wallet /tmp/deepak/dubey/wallets/ohswallet -dn CN=hostname -keysize 2048 -self_signed -validity 3650 -auto_login_only
./orapki wallet create -wallet /tmp/deepak/dubey/wallets/ohs_proxy_ssl_wallet -auto_login_only
./orapki wallet add -wallet /tmp/deepak/dubey/wallets/ohs_proxy_ssl_wallet -trusted_cert -cert RootCA.txt -auto_login_only
./orapki wallet add -wallet /tmp/deepak/dubey/wallets/ohs_proxy_ssl_wallet -trusted_cert -cert HostNameSelfSigned.txt -auto_login_only
keytool -importcert -alias OHS -file OIM-Server.cert -keystore /tmp/deepak/dubey/config/keystores/appTrustKeyStore-hostname.jks
keytool -export -alias myAliasName -file /tmp/deepak/dubey/myAliasName.txt -keystore /tmp/deepak/dubey/config/KeyStores/appIdentityKeyStore.jks -rfc
keytool -export -alias RootCA -file /tmp/deepak/dubey/RootCA.txt -keystore /tmp/deepak/dubey/config/KeyStores/appTrustKeyStore-hostname.jks -rfc
Wednesday, October 14, 2015
OIM OIA 11G R2 PS2 Integration Issue
If you have integrated OIM and OIA and they are in the different domain then you will encounter the issue while running the import jobs.
We need to establish trust between the 2 domains as below .
Navigate to Home > Domain > Security, and check Cross Domain Security is Enabled.
Click Advanced, enter the desired password in the Credential and Confirm Credential fields, and click Save.
Repeat this configuration change for both domains using the same password value.
Restart both Oracle WebLogic Servers.
We need to establish trust between the 2 domains as below .
Navigate to Home > Domain > Security, and check Cross Domain Security is Enabled.
Click Advanced, enter the desired password in the Credential and Confirm Credential fields, and click Save.
Repeat this configuration change for both domains using the same password value.
Restart both Oracle WebLogic Servers.
OIA Web Application Deploy Issue
In this post I will talk about the peculiar issue that you will encounter if you deploy the OIA war file on the weblogic server and there is a failure in deployment of the war file.
To fix this issue, you have to enable "Archived Real Path Enabled" Setting on the weblogic domain.
Restart the Weblogic Admin and managed servers.
To fix this issue, you have to enable "Archived Real Path Enabled" Setting on the weblogic domain.
Restart the Weblogic Admin and managed servers.
Tuesday, October 13, 2015
Sample OIM Nested Query
select RBE_REQUEST_KEY from REQUEST_BENEFICIARY_ENTITIES where ( RBE_ENTITY_NAME = 'My_Role_Name' AND RBE_OPERATION = 'ASSIGNROLES' AND RBE_REQUEST_KEY IN ( select REQUEST_KEY from REQUEST where ( REQUEST_STATUS = 'Obtaining Operation Approval' AND REQUEST_MODEL_NAME = 'Assign Roles' AND REQUESTER_KEY = '1368' )))
FaceUtils Sample Class
In this post, I will be sharing some sample code related to FaceUtils class
import java.io.IOException;
import java.util.Map;
import java.util.ResourceBundle;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
//import oracle.adf.controller.internal.util.TaskFlowUtils;
import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCBindingContainerChangeAdapter;
import oracle.adf.model.binding.DCControlBinding;
import oracle.adf.view.rich.context.AdfFacesContext;
import oracle.binding.AttributeBinding;
import oracle.binding.ControlBinding;
import oracle.iam.ui.platform.utils.TaskFlowUtils;
import oracle.jbo.uicli.binding.JUCtrlActionBinding;
import oracle.jbo.uicli.binding.JUCtrlListBinding;
import oracle.jbo.uicli.binding.JUEventBinding;
import oracle.jbo.uicli.binding.JUEventBindingDef;
public class FacesUtils {
public FacesUtils() {
// do not instantiate
throw new AssertionError();
}
/*
* Re-render the component.
*/
public static void partialRender(UIComponent component) {
if (component != null) {
AdfFacesContext.getCurrentInstance().addPartialTarget(component);
}
}
/*
* Sets attribute value through attribute binding.
*/
public static void setAttributeBindingValue(String attributeName,
Object value) {
AttributeBinding binding = getAttributeBinding(attributeName);
if (binding != null) {
binding.setInputValue(value);
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" does not exist.");
}
}
/*
* Gets attribute value using attribute binding.
*/
public static <T> T getAttributeBindingValue(String attributeName,
Class<T> clazz) {
AttributeBinding binding = getAttributeBinding(attributeName);
if (binding != null) {
return (T)binding.getInputValue();
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" does not exist.");
}
}
/*
* Gets attribute value using list binding.
*/
public static <T> T getListBindingValue(String attributeName,
Class<T> clazz) {
ControlBinding ctrlBinding = getControlBinding(attributeName);
if (ctrlBinding instanceof JUCtrlListBinding) {
JUCtrlListBinding listBinding = (JUCtrlListBinding)ctrlBinding;
return (T)listBinding.getAttributeValue();
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" is not list binding.");
}
}
public static ControlBinding getControlBinding(String name) {
ControlBinding crtlBinding = getBindings().getControlBinding(name);
if (crtlBinding == null) {
throw new IllegalArgumentException("Control Binding '" + name +
"' not found");
}
return crtlBinding;
}
public static AttributeBinding getAttributeBinding(String name) {
ControlBinding ctrlBinding = getControlBinding(name);
AttributeBinding attributeBinding = null;
if (ctrlBinding != null) {
if (ctrlBinding instanceof AttributeBinding) {
attributeBinding = (AttributeBinding)ctrlBinding;
}
}
return attributeBinding;
}
public static DCBindingContainer getBindings() {
FacesContext fc = FacesContext.getCurrentInstance();
ExpressionFactory exprfactory =
fc.getApplication().getExpressionFactory();
ELContext elctx = fc.getELContext();
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx, "#{bindings}",
Object.class);
DCBindingContainer dcbinding =
(DCBindingContainer)valueExpression.getValue(elctx);
return dcbinding;
}
/*
* Evaluates EL expression and returns value.
*/
public static <T> T getValueFromELExpression(String expression,
Class<T> clazz) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application app = facesContext.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
ValueExpression valueExp =
elFactory.createValueExpression(elContext, expression, clazz);
return (T)valueExp.getValue(elContext);
}
/*
* Gets MethodExpression based on the EL expression. MethodExpression can then be used to invoke the method.
*/
public static MethodExpression getMethodExpressionFromEL(String expression,
Class<?> returnType,
Class[] paramTypes) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application app = facesContext.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
MethodExpression methodExp =
elFactory.createMethodExpression(elContext, expression, returnType,
paramTypes);
return methodExp;
}
public static ELContext getELContext() {
return FacesContext.getCurrentInstance().getELContext();
}
/*
* Shows FacesMessage. The message will not be bound to any component.
*/
public static void showFacesMessage(FacesMessage fm) {
FacesContext.getCurrentInstance().addMessage(null, fm);
}
/*
* Launch bounded taskFlow based on provided parameters.
*/
public void launchTaskFlow(String id, String taskFlowId,
String name, String icon,
String description, String helpTopicId,
boolean inDialog,
Map<String, Object> params) {
// create JSON payload for the contextual event
String jsonPayLoad =
TaskFlowUtils.createContextualEventPayLoad(id, taskFlowId,
name, icon, description,
helpTopicId, inDialog,
params);
// create and enqueue contextual event
DCBindingContainer bc =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCControlBinding ctrlBinding = bc.findCtrlBinding(TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// support both bindings - using eventBinding as well as methodAction
if (ctrlBinding instanceof JUEventBinding) {
JUEventBinding eventProducer = (JUEventBinding) ctrlBinding;
bc.getEventDispatcher().queueEvent(eventProducer, jsonPayLoad);
} else if (ctrlBinding instanceof JUCtrlActionBinding) {
JUCtrlActionBinding actionBinding = (JUCtrlActionBinding) ctrlBinding;
bc.getEventDispatcher().queueEvent(actionBinding.getEventProducer(), jsonPayLoad);
} else {
throw new IllegalArgumentException("Incorrect binding for " + TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
}
bc.getEventDispatcher().processContextualEvents();
}
/*
* Redirect to a provided url.
*/
public static void redirect(String url) {
try {
FacesContext fctx = FacesContext.getCurrentInstance();
fctx.getExternalContext().redirect(url);
fctx.responseComplete();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
//
// public void launchTaskFlow(String id,String taskFlowId, String name , String icon, String description, String helpTopicId, boolean inDialog, Map<String, Object > params){
// String jsonPayLoad = TaskFlowUtils.createContextualEventPayLoad(id, null, taskFlowId, name, icon, description, helpTopicId, inDialog, params);
// DCBindingContainer bc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
// DCControlBinding ctrlBinding = bc.findCtrlBinding(TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// if(ctrlBinding instanceof JUEventBinding){
// JUEventBinding eventProducer = (JUEventBinding) ctrlBinding;
// bc.getEventDispatcher().queueEvent(eventProducer, jsonPayLoad);
// }else if (ctrlBinding instanceof JUCtrlActionBinding){
// JUCtrlActionBinding actionBinding = (JUCtrlActionBinding) ctrlBinding;
// bc.getEventDispatcher().queueEvent(actionBinding.getEventProducer(), jsonPayLoad);
// }else{
// throw new IllegalArgumentException ("Incorrect binding for "+TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// }
// bc.getEventDispatcher().processContextualEvents();
//
// }
}
import java.io.IOException;
import java.util.Map;
import java.util.ResourceBundle;
import javax.el.ELContext;
import javax.el.ExpressionFactory;
import javax.el.MethodExpression;
import javax.el.ValueExpression;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
//import oracle.adf.controller.internal.util.TaskFlowUtils;
import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCBindingContainerChangeAdapter;
import oracle.adf.model.binding.DCControlBinding;
import oracle.adf.view.rich.context.AdfFacesContext;
import oracle.binding.AttributeBinding;
import oracle.binding.ControlBinding;
import oracle.iam.ui.platform.utils.TaskFlowUtils;
import oracle.jbo.uicli.binding.JUCtrlActionBinding;
import oracle.jbo.uicli.binding.JUCtrlListBinding;
import oracle.jbo.uicli.binding.JUEventBinding;
import oracle.jbo.uicli.binding.JUEventBindingDef;
public class FacesUtils {
public FacesUtils() {
// do not instantiate
throw new AssertionError();
}
/*
* Re-render the component.
*/
public static void partialRender(UIComponent component) {
if (component != null) {
AdfFacesContext.getCurrentInstance().addPartialTarget(component);
}
}
/*
* Sets attribute value through attribute binding.
*/
public static void setAttributeBindingValue(String attributeName,
Object value) {
AttributeBinding binding = getAttributeBinding(attributeName);
if (binding != null) {
binding.setInputValue(value);
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" does not exist.");
}
}
/*
* Gets attribute value using attribute binding.
*/
public static <T> T getAttributeBindingValue(String attributeName,
Class<T> clazz) {
AttributeBinding binding = getAttributeBinding(attributeName);
if (binding != null) {
return (T)binding.getInputValue();
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" does not exist.");
}
}
/*
* Gets attribute value using list binding.
*/
public static <T> T getListBindingValue(String attributeName,
Class<T> clazz) {
ControlBinding ctrlBinding = getControlBinding(attributeName);
if (ctrlBinding instanceof JUCtrlListBinding) {
JUCtrlListBinding listBinding = (JUCtrlListBinding)ctrlBinding;
return (T)listBinding.getAttributeValue();
} else {
throw new IllegalArgumentException("Binding " + attributeName +
" is not list binding.");
}
}
public static ControlBinding getControlBinding(String name) {
ControlBinding crtlBinding = getBindings().getControlBinding(name);
if (crtlBinding == null) {
throw new IllegalArgumentException("Control Binding '" + name +
"' not found");
}
return crtlBinding;
}
public static AttributeBinding getAttributeBinding(String name) {
ControlBinding ctrlBinding = getControlBinding(name);
AttributeBinding attributeBinding = null;
if (ctrlBinding != null) {
if (ctrlBinding instanceof AttributeBinding) {
attributeBinding = (AttributeBinding)ctrlBinding;
}
}
return attributeBinding;
}
public static DCBindingContainer getBindings() {
FacesContext fc = FacesContext.getCurrentInstance();
ExpressionFactory exprfactory =
fc.getApplication().getExpressionFactory();
ELContext elctx = fc.getELContext();
ValueExpression valueExpression =
exprfactory.createValueExpression(elctx, "#{bindings}",
Object.class);
DCBindingContainer dcbinding =
(DCBindingContainer)valueExpression.getValue(elctx);
return dcbinding;
}
/*
* Evaluates EL expression and returns value.
*/
public static <T> T getValueFromELExpression(String expression,
Class<T> clazz) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application app = facesContext.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
ValueExpression valueExp =
elFactory.createValueExpression(elContext, expression, clazz);
return (T)valueExp.getValue(elContext);
}
/*
* Gets MethodExpression based on the EL expression. MethodExpression can then be used to invoke the method.
*/
public static MethodExpression getMethodExpressionFromEL(String expression,
Class<?> returnType,
Class[] paramTypes) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application app = facesContext.getApplication();
ExpressionFactory elFactory = app.getExpressionFactory();
ELContext elContext = facesContext.getELContext();
MethodExpression methodExp =
elFactory.createMethodExpression(elContext, expression, returnType,
paramTypes);
return methodExp;
}
public static ELContext getELContext() {
return FacesContext.getCurrentInstance().getELContext();
}
/*
* Shows FacesMessage. The message will not be bound to any component.
*/
public static void showFacesMessage(FacesMessage fm) {
FacesContext.getCurrentInstance().addMessage(null, fm);
}
/*
* Launch bounded taskFlow based on provided parameters.
*/
public void launchTaskFlow(String id, String taskFlowId,
String name, String icon,
String description, String helpTopicId,
boolean inDialog,
Map<String, Object> params) {
// create JSON payload for the contextual event
String jsonPayLoad =
TaskFlowUtils.createContextualEventPayLoad(id, taskFlowId,
name, icon, description,
helpTopicId, inDialog,
params);
// create and enqueue contextual event
DCBindingContainer bc =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
DCControlBinding ctrlBinding = bc.findCtrlBinding(TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// support both bindings - using eventBinding as well as methodAction
if (ctrlBinding instanceof JUEventBinding) {
JUEventBinding eventProducer = (JUEventBinding) ctrlBinding;
bc.getEventDispatcher().queueEvent(eventProducer, jsonPayLoad);
} else if (ctrlBinding instanceof JUCtrlActionBinding) {
JUCtrlActionBinding actionBinding = (JUCtrlActionBinding) ctrlBinding;
bc.getEventDispatcher().queueEvent(actionBinding.getEventProducer(), jsonPayLoad);
} else {
throw new IllegalArgumentException("Incorrect binding for " + TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
}
bc.getEventDispatcher().processContextualEvents();
}
/*
* Redirect to a provided url.
*/
public static void redirect(String url) {
try {
FacesContext fctx = FacesContext.getCurrentInstance();
fctx.getExternalContext().redirect(url);
fctx.responseComplete();
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
//
// public void launchTaskFlow(String id,String taskFlowId, String name , String icon, String description, String helpTopicId, boolean inDialog, Map<String, Object > params){
// String jsonPayLoad = TaskFlowUtils.createContextualEventPayLoad(id, null, taskFlowId, name, icon, description, helpTopicId, inDialog, params);
// DCBindingContainer bc = (DCBindingContainer) BindingContext.getCurrent().getCurrentBindingsEntry();
// DCControlBinding ctrlBinding = bc.findCtrlBinding(TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// if(ctrlBinding instanceof JUEventBinding){
// JUEventBinding eventProducer = (JUEventBinding) ctrlBinding;
// bc.getEventDispatcher().queueEvent(eventProducer, jsonPayLoad);
// }else if (ctrlBinding instanceof JUCtrlActionBinding){
// JUCtrlActionBinding actionBinding = (JUCtrlActionBinding) ctrlBinding;
// bc.getEventDispatcher().queueEvent(actionBinding.getEventProducer(), jsonPayLoad);
// }else{
// throw new IllegalArgumentException ("Incorrect binding for "+TaskFlowUtils.RAISE_TASK_FLOW_LAUNCH_EVENT);
// }
// bc.getEventDispatcher().processContextualEvents();
//
// }
}
OIM and Java Connector Server SSL Establishment
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
keytool -export -alias
selfsigned
-file
selfsigned
.cer -keystore keystore.jks
Once keystore is created and certficate file is exported
Re-register the Java Connector service with
ConnectorServer.exe /uninstall
ConnectorServer.exe /install -Djavax.use.ssl=true -Djavax.ssl.keystore=keystore.jks
Restart the Java Connector Server.
Copy the
selfsigned
.cer and import the certificate to cacerts, demo-trust and hostname-truststore.jks (oim)
keytool -import -trustcacerts -alias selfsigned -file selfsigned.cer -keystore cacerts
Thursday, July 30, 2015
OIM 11G R2 PS3 (11.1.2.3.0) CreateUserDataSetValidator Request Dataset and Custom Validation
Export /metadata/iam-features-requestactions/model-data/CreateUserDataSet.xml
Attach your dataset validator
<DataSetValidator name="CreateUserDataValidator" classname="oracle.iam.requestactions.plugins.datavalidator.CreateUserDataValidator"/>
<DataSetValidator name="MyValidator" classname="com.deepak.dubey.validator.MyValidator"/>
import oracle.iam.platform.context.ContextManager;
//How to get the currently logged in User
String subjectId = (String)ContextManager.getUserPreference(ContextManager.USERDETAILS.KEY.getKey());
import java.util.List;
import javax.swing.text.html.HTMLDocument.Iterator;
import oracle.iam.identity.exception.NoSuchUserException;
import oracle.iam.identity.exception.UserLookupException;
import oracle.iam.platform.Platform;
import oracle.iam.platform.authz.exception.AccessDeniedException;
import oracle.iam.platform.context.ContextManager;
import oracle.iam.request.exception.InvalidRequestDataException;
import oracle.iam.request.plugins.RequestDataValidator;
import oracle.iam.request.vo.Beneficiary;
import oracle.iam.request.vo.RequestBeneficiaryEntity;
import oracle.iam.request.vo.RequestBeneficiaryEntityAttribute;
import oracle.iam.request.vo.RequestData;
import oracle.iam.requestactions.plugins.datavalidator.CreateUserDataValidator;
public class MyValidator extends CreateUserDataValidator implements RequestDataValidator{
public void validate(RequestData requestdata) throws InvalidRequestDataException {
//How to get the currently logged in User
String subjectId = (String)ContextManager.getUserPreference(ContextManager.USERDETAILS.KEY.getKey());
oracle.iam.request.api.RequestService reqSvc = Platform
.getService(oracle.iam.request.api.RequestService.class);
oracle.iam.identity.usermgmt.api.UserManager usersvc = Platform
.getService(oracle.iam.identity.usermgmt.api.UserManager.class);
java.util.List<oracle.iam.request.vo.RequestEntity> l = requestdata.getTargetEntities();
for( oracle.iam.request.vo.RequestEntity r: l){
java.util.List<oracle.iam.request.vo.RequestEntityAttribute> attributes = r.getEntityData();
for(oracle.iam.request.vo.RequestEntityAttribute attribute : attributes){
System.out.println("** ->"+attribute.getName()+ "---> "+attribute.getValue());
if (attribute.getName().toString().equalsIgnoreCase("First Name"))
{
String firstName = attribute.getValue().toString();
}
if (attribute.getName().toString().equalsIgnoreCase("Last Name"))
{
String lastName = attribute.getValue().toString();
}
if (attribute.getName().toString().equalsIgnoreCase("User Manager"))
{
String managerKey = attribute.getValue().toString();
if(subjectId.equalsIgnoreCase(managerKey)){
throw new InvalidRequestDataException("Manager cannot be Self");
}
oracle.iam.identity.usermgmt.vo.User user = null;
try {
user = usersvc.getDetails(managerKey, null, false);
} catch (NoSuchUserException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UserLookupException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (AccessDeniedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("manager login is --->"+user.getLogin());
String contractorManager = user.getLogin();
}
}
}
}
}
plugin.xml
<plugins pluginpoint="oracle.iam.request.plugins.RequestDataValidator">
<plugin pluginclass="com.deepak.dubey.request.MyValidator"
version="1.0"
name="MyValidator">
</plugin>
</plugins>
Sunday, July 19, 2015
OIM 11G R2 PS3 (11.1.2.3.0) Mandatory WebLogic Patches
Oracle Identity Manager OIM 11G R2 PS3 (11.1.2.3.0) Mandatory WebLogic Patches
Windows
From the Start Menu, choose:
Start > Programs > Oracle WebLogic > Smart Update
Or, from an MS-DOS command prompt window:
Go to the MW_HOME\utils\bsu directory, where MW_HOME is the host directory for the product installation that you want to update.
At the prompt, enter the following command:
bsu.cmd
The Smart Update main window is displayed.
UNIX
Note: If you want to run Smart Update on a UNIX system, the console attached to the system on which you are upgrading the software must support a Java-based GUI.
Log in to the UNIX system.
Go to the MW_HOME/utils/bsu directory, where MW_HOME is the host directory for the product installation that you want to update.
At the prompt, enter the following command:
bsu.sh
The Smart Update main window is displayed.
Copy the patch.jar and patch.xml to C:\Oracle2\Middleware\utils\bsu\cache_dir
Launch the Smart Update
Finally after applying all the mandatory patches
Windows
From the Start Menu, choose:
Start > Programs > Oracle WebLogic > Smart Update
Or, from an MS-DOS command prompt window:
Go to the MW_HOME\utils\bsu directory, where MW_HOME is the host directory for the product installation that you want to update.
At the prompt, enter the following command:
bsu.cmd
The Smart Update main window is displayed.
UNIX
Note: If you want to run Smart Update on a UNIX system, the console attached to the system on which you are upgrading the software must support a Java-based GUI.
Log in to the UNIX system.
Go to the MW_HOME/utils/bsu directory, where MW_HOME is the host directory for the product installation that you want to update.
At the prompt, enter the following command:
bsu.sh
The Smart Update main window is displayed.
Copy the patch.jar and patch.xml to C:\Oracle2\Middleware\utils\bsu\cache_dir
Launch the Smart Update
Finally after applying all the mandatory patches
Saturday, July 18, 2015
Subscribe to:
Posts (Atom)