Accessing OIM APIs remotely

Hi all,
I am trying to access the OIM API remotely from OAM and I am getting the following error.
Please help.
Thor.API.Exceptions.tcAPIException: unread block data
     at Thor.API.tcUtilityFactory.getPropertyValue(Unknown Source)
     at Thor.API.tcUtilityFactory.<init>(Unknown Source)
     at OIMUserPwdResetClientSelf.main(OIMUserPwdResetClientSelf.java:174)
Thanks,
M

You certainly can, if you use Back to My Mac, a feature of OS X "Lion" and later:
Setting up and using Back to My Mac with an AirPort base station or Time Capsule

Similar Messages

  • Calling OIM API from a remote system

    Hi.
    I have OIM 9031 server installed on a computer HostA. And I have multiple copies of the 3rd party java program installed on HostB, HostC and so on.
    I need to be able to call some OIM API from that custom java program (for example, receive the list of active users from OIM server).
    According to OIM documentation, I can use Remote manager to manage users on non-network awared systems.
    But what if I use Remote manager for calling remote OIM API ? Is that possible?
    Or are there any easier ways to achieve my goal ?

    The installer in the AD sync connector is provided because in addition to having the OIM API client, there is a DLL that needs to be installed and registered to capture the plaintext password. It is not necessary to have an installer, but it might be be a convenience if you are deploying to many machines.
    Here is some code to get you started:
    import Thor.API.tcUtilityFactory;
    import com.thortech.xl.util.config.ConfigurationClient;
    import java.util.Hashtable;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    public class TcUtilFactory {
    Log log = LogFactory.getLog("OIMCLIENT.UTILITY");
    private tcUtilityFactory factory = null;
    private Hashtable env = null;
    public TcUtilFactory() throws Exception {
    // you can also set these system properties on the command line
    System.setProperty("XL.HomeDir", "/opt/oimclient);
    System.setProperty("java.security.policy", "config/xl.policy");
    System.setProperty("log4j.configuration", "config/log.properties");
    System.setProperty("java.security.auth.login.config", "config/auth.conf");
    ConfigurationClient.ComplexSetting configClient = ConfigurationClient
    .getComplexSettingByPath("Discovery.CoreServer");
    env = configClient.getAllSettings();
    try {
    factory = new tcUtilityFactory(env, "xlsysadm", "xelsysadm");
    } catch (Exception e) {
    // handle exceptions thrown by tcUtilityFactory constructor
    From here you can write whatever methods you need going against tcUtilityFactory. Also note that you will need many of the jars from your lib directory as well as the properly configured xl.config and other files in the config directory that the design console client uses (I usually just copy them from that install). Last you will need to make sure you have the required jars specific to you app server (the ones you need to copy over during the design console install)

  • Accessing OIM data through API

    Hie,
    can u say me the code for " getting the resource accounts he have for the Particular user when his login is given as input" through OIM11gR2 api.

    you may get the user's key based on the user's login and then use the following OIM API to fetch a list of all the objects that have been provisioned for a user:
    Thor.API.tcResultSet getObjects(long plUserKey)
    Complete details:
    http://docs.oracle.com/cd/E27559_01/apirefs.1112/e28159/Thor/API/Operations/tcUserOperationsIntf.html#getObjects_long_

  • Enabling a User through OIM API

    Hi I am trying to enable a user through OIM API, However the end date is already passed for that user, I am setting up a new end date through the Program (showm below). However the update user is not working (i am not sure).
    Map usermap = new HashMap();
    usermap.put("Users.User ID", User_id );
    Map grpmap = new HashMap();
    grpmap.put("Groups.Group Name", Group_Name);
    tcResultSet ts = userClient.findUsers(usermap); //find all users
    String existing_end_date = ts.getStringValue("Users.End Date");
    tcResultSet tg = groupClient.findGroups(grpmap); //find requireq group
    long ukey = ts.getLongValue("Users.Key");
    long gkey = tg.getLongValue("Groups.Key"); //find group key
    // ENABLE THE USER
    java.util.Date new_end_date = new java.util.Date(111,1,1);
    Calendar cal = Calendar.getInstance();
    cal.setTime(new_end_date);
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    String Str1 = dateFormat.format(cal.getTime());
    String Str2 = existing_end_date + " 12:00:00";
    System.out.println(User_id+" OLD End Date:" + Str2 + " New End Date: " + Str1);
    Map usermap2 = new HashMap();
    usermap2.put("Users.User ID", User_id );
    usermap2.put("Users.End Date", Str1);
    userClient.updateUser(ts,usermap2);
    userClient.enableUser(ukey);
    I am getting the following error:
    U0000018 OLD End Date:2009-09-30 12:00:00 New End Date: 2011-02-01 12:00:00
    2/12/2010 15:02:53 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    Thor.API.Exceptions.tcAPIException: The user cannot be enabled because the end date is passed.
    Not sure why it is happening. It looks like the Updateuser is not working, or something else?
    Please advise. Thanks in advance.

    Hi Suren,
    thanks for the note.
    I found that as soon as I enable the user, I am getting the followimg messages in the opmn logs:
    INFO,06 Dec 2010 10:55:41,841,[XELLERATE.JAVACLIENT],System Event Handler: Validating Organization for an User.
    INFO,06 Dec 2010 10:55:41,944,[XELLERATE.JAVACLIENT],System Event Handler: Triggering Processes related to User.
    INFO,06 Dec 2010 10:55:42,402,[XELLERATE.JAVACLIENT],System Event Handler: Enabling the User
    INFO,06 Dec 2010 10:55:42,421,[XELLERATE.JAVACLIENT],System Event Handler: Validating Organization for an User.
    INFO,06 Dec 2010 10:55:42,427,[XELLERATE.JAVACLIENT],System Event Handler: Triggering Processes related to User.
    INFO,06 Dec 2010 10:55:42,439,[XELLERATE.JAVACLIENT],System Event Handler: Changing application data based on Organization change.
    INFO,06 Dec 2010 10:55:42,442,[XELLERATE.JAVACLIENT],System Event Handler: Auto-Group Membership Event.
    INFO,06 Dec 2010 10:55:43,715,[XELLERATE.JAVACLIENT],System Event Handler: Evaluating User Policies
    So, the access policies are getting evaluated, triggering provisioning processes.
    What I am planning to do is, to disable the access policies and try to run the Program.
    Because of this issue, my Program is throwing an error (until I looked into the opmn logs, it doesn't make sense).
    6/12/2010 10:55:50 oracle.j2ee.rmi.RMIMessages EXCEPTION_ORIGINATES_FROM_THE_REMOTE_SERVER
    WARNING: Exception returned by remote server: {0}
    Thor.API.Exceptions.tcAPIException: Error occurred enabling Xellerate User instance.
    Regards
    Vijay Chinnasamy

  • Provision and modify user's access using API

    We have a requirement where user can request new/ modify access to an application in a custom UI. In the backend we need to use OIM apis to do the task. For account creation I can make use of access policies to trigger prvisioning but not sure how I can modify the access. Please suggest.
    There is a new API oracle.iam.provisioning.api introduced in R2 but not sure how to make use of it.

    Kiril,
    So, i'd like to "map" Database Authentication and Application Express Authentication.That doesn't mean anything to me. What do you mean in technical terms?
    From FROMS i'll call Applcation Express to display some information - like report or...Call it by placing a hyperlink on the screen? When the user clicks the link to the Application Express application are you expecting the user to have to login or not (what is the requirement)?
    Realize that when the Oracle APEX application runs (after USERA authenticates) it will not be like running a Forms application as USERA. The Oracle APEX app will run as the parsing schema of the application, no matter who logs in to it. Of course internally you can recognize who the user is and do different things based on querying the user roles/privs in the data dictionary, but you have to code that yourself. You can also use VPD and base predicates on the authenticated user. Can you live with that?
    Scott

  • Call OIM APIs

    Hello,
    I am writing a java program to call the OIM APIs to reset a user's password and set up security questions.
    First in my java program I need to make a connection to OIM URL. Example of my URL is: http://lenovo-d0446ff6.:7778/xlWebApp/
    What API in OIM may I use to establish the connection or is there another way to connect to OIM via some java code.
    Thanks

    I followed the OIM API Usage Guide and the Getting started with OIM API's using Eclipse.
    When I ran FirstAPITest, I got the following error message:
    Startup...
    Getting configuration...
    Login...
    log4j:WARN No appenders could be found for logger (XELLERATE.ACCOUNTMANAGEMENT).
    log4j:WARN Please initialize the log4j system properly.
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/ejb/EJBHome
         at java.lang.ClassLoader.defineClass1(Native Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:164)
         at com.thortech.xl.ejb.interfaces.tcUnauthenticatedOperationsUtil.class$(Unknown Source)
         at com.thortech.xl.ejb.interfaces.tcUnauthenticatedOperationsUtil.getHome(Unknown Source)
         at Thor.API.Security.LoginHandler.oracleLoginHandler.handleOracleClientLogin(Unknown Source)
         at Thor.API.Security.LoginHandler.oracleLoginHandler.login(Unknown Source)
         at Thor.API.Security.ClientLoginUtility.login(Unknown Source)
         at Thor.API.tcUtilityFactory.<init>(Unknown Source)
         at FirstAPITest.main(FirstAPITest.java:16)
    I tried to search the forum for javax/ejb/EJBHome without success. Did I miss another jar?
    Thanks

  • Using OIM APIs

    I need to use OIM APIs from a third party web application.
    I would like to know, would it be possible as our OIM server would be at a different m/c then the client web application.
    So how would the settings be done in this case, as we set some system variables in the code for accessing the OIM APIs which include mentioning the path of Xellerate folder.
    Kindly guide.

    I have gone through this link, and have used OIM APIs earlier, but in that case both my code and the OIM server were running on the same m/c.
    But now its a third party web app which wants to call OIM APIs, hence I would like to knw, how d following settings would be done.
    System.setProperty("XL.HomeDir", "D:/NewOIM/xellerate");
    System.setProperty("java.security.policy", "D:/NewOIM/xellerate/config/xl.policy");
    System.setProperty("java.security.auth.login.config", "D:/NewOIM/xellerate/config/authwl.conf");
    System.setProperty("log4j.configuration", "D:/NewOIM/xellerate/config/log.properties");
    System.setProperty("java.naming.provider.url", "t3://blrkec87910d:7001");
    As uptil now I was giving the local location of these folders.
    But now how would I give it?

  • Custom Webservice Using OIM APIs

    Hi..
    How can we create and publish a custom webservice from OIM APIs??
    OOTB SPML Webservice does not support all my requirements.
    Thanks...

    The OOTB Web services are mostly asynchronous, so its not mostly suitable for our synchronous activity in OIM. like create,update,enable,disable etc
    So in order to develop the webservices...
    first of all list down all the methods which u need to publish.
    Write Java code for each methods..
    after that publish all methods as Webservices (JAX-WS) on Weblogic server where OIM is running.
    After that you can access your custom webservices of OIM.
    Regards,
    J

  • Accessing an API through a Database Link

    Hi,
    I am using Jdeveloper 11.1.2.2.0
    My use case is that, I need to access an API through a DB Link and pass some parameters/data using this DB link into the API and commit it into the remote database.
    I will be having a page from where I will passing the parameters, which should be committed into the database of the API provider.
    For this I have created a DB link and tried to query data from the remote database tables, its working.
    How to pass the parameters into the API using DB link and commit it into the remote database ?
    Thanks,
    Nigel.

    Hi Frank,
    Thanks for the suggestion.
    But in my case I need to call the external API using a DB Link.
    I am able to call the API and it is returning me the statements that the new row is being created successfully and returns the ID of the newly created row.
    But when I try again to access the Database through a query it is showing all the Rows with theirs ID's and data inside them, before and after the Row which I entered.
    The rows which has the ID which I entered is having no values in their columns. Is it because the data is not getting committed ?
    What is the reason for this ?
    Thanks,
    Nigel.
    Edited by: Nigel Thomas on Jun 14, 2012 2:52 AM

  • Problem while accessing object in remote database

    Hi All,
    We have a procedure "UPDATE_CONV_DETAILS" created in the remote databse in the "apps" schema. The synonym for the procedure is created in the billing schema(present in the remote database). A dblink is created the local database through which we are tring to access the remote object "UPDATE_CONV_DETAILS".
    Dblink script:
    create public database link PRE_TO_CEL
    connect to BILLING
    identified by BILLING
    using 'MAP1';
    When trying to access the object from the local machine using the schema name.object_name it works fine:
    SQL> DESC APPS.UPDATE_CONV_DETAILS@PRE_TO_CEL
    PROCEDURE APPS.UPDATE_CONV_DETAILS@PRE_TO_CEL
    Argument Name Type In/Out Default?
    IN_MOBILE VARCHAR2 IN
    IN_SERVICE_CODE VARCHAR2 IN
    IN_STATUS VARCHAR2 IN
    OUT_ERROR_CODE NUMBER OUT
    But when trying the access the same object using the synonym_name it gives the error:
    SQL> DESC UPDATE_CONV_DETAILS@PRE_TO_CEL
    ERROR:
    ORA-04043: object APPS.UPDATE_CONV_DETAILS does not exist
    Regards,
    Kirti

    You have two schema.
    apps
    billing
    both reside in remote database.
    there on procedure and on procedure u create one synonym and u want to access it.
    ur remote database name is "map1"
    on ur local database ur create one dblink to access remote database.
    ORA-04043: object string does not exist
    Cause: An object name was specified that was not recognized by the system. There are several possible causes:
    - An invalid name for a table, view, sequence, procedure, function, package, or package body was entered. Since the system could not recognize the invalid name, it responded with the message that the named object does not exist.
    - An attempt was made to rename an index or a cluster, or some other object that cannot be renamed.
    Action: Check the spelling of the named object and rerun the code. (Valid names of tables, views, functions, etc. can be listed by querying the data dictionary.)

  • Access MS Access database on remote computer (shared folder)

    Hello,
    I need some help.
    I've made a program and it works fine on my computer, but multiple users will be using program simultaneously, each one on his own computer conected over local network to mine computer (database is on my computer in shared folder). 
    When I try to access data on database (path is path of shared folder) i'm getting error 5013 (no database). The problem occurs only when I'm trying to read something from MS access database but not if I try to read data from .txt file, then it works fine...
    I'm using ADO Tools
    Can someone help me, I would be very greatful?
    Solved!
    Go to Solution.

    Thanks to you Dennis I've managed to figure it out.
    I'll explain this for future generations
    1) I've created DSN. To do that open ODBC Data Source Administrator:
    - for 64 bit app C:\Windows\System32\odbcad32.exe
    - for 32 bit app C:\Windows\SysWOW64\odbcad32.exe
     In System DSN tab click Add.. then choose Microsoft Access Driver (*.mdb) (If you do not have this on list download that drivers from web) --> FINISH.
    Enter Data Source Name (mine is Test2) --> Select... --> now because the MS Access database is on shared folder on remote PC go to Network... --> Browse... and select that shared folder --> Finish. Now you'll see all .mdb files on that folder and you choose your database --> OK --> OK --> OK
    2) Now in block diagram you connect string "DSN=your_dsn_name;" (mine was Test2) to ConnectionString connector of ADO Connection Open.vi
    It worked for me.
    Pis
    Attachments:
    MS Access database on remote computer (local network).jpg ‏114 KB

  • Error while accessing OIM UI - OracleJSP error: oracle.jsp.parse.JspParseException

    We have 3 nodes of OIM servers in our clustered production environment. While accessing OIM server on first node, following error is coming in the browser window -
    OracleJSP error: oracle.jsp.parse.JspParseException:
    /oracle/iam/ui/main/signin.jspx: Line # 5, &amp;amp;amp;lt;af:document id="d1" initialFocusId="pt1:_pt_it1" theme="light" title="#{uiBundle['IDENTITY_SELF_SERVICE_TITLE']}"&amp;amp;amp;gt;
    Error: Encountered deferred syntax #{ in template text. If intended as a literal, escape it or set directive deferredSyntaxAllowedAsLiteral
    The OIM UI is accessible on the other 2 nodes. There are no changes made in the environment. I have also attached the OIM diagnostic logs for your analysis.
    Please let us know the steps to resolve this issue in production environment.

    No..
    I have followed the way to add JSF libray,
    1)Right click the projet->project properties->javadoc->JSP taglibraries
    2)Inside the Distributed Library i have selected the JSTL core 1.2 and click on add.
    3) Then a new dialogue box of Choose tablibraries came.inside that only struts bean,struts Html etc are seeing.
    What i need to select?..Do i am following the right way?
    Please help..

  • OIM API portablity issue  with OIM 9.1 / Weblogic 10.3

    Hi , We have a existing piece of code which does some User Mutation through OIM API.
    [I am not well versed with OIM ]
    The code was running fine with Weblogic 8.3 and previous OIM version.
    Here is the piece of code.
    logger.info("Initializing OIM Params from config location:" oimConfigFileUtil.getOIMConfigBase());+*
    +          System.setProperty("XL.HomeDir", oimConfigFileUtil.getOIMConfigBase().getAbsolutePath());+
    +          System.setProperty("java.security.auth.login.config", oimConfigFileUtil.getOIMAuthWLFile().getAbsolutePath());+
    +          ConfigurationClient.ComplexSetting configClient = ConfigurationClient.getComplexSettingByPath("Discovery.CoreServer");+
    +          env = configClient.getAllSettings();+
    *+          try {+*
    +               oimAccessFactory = new tcUtilityFactory(env, oimConfigFileUtil.getUserID(), oimConfigFileUtil.getPassword());+
    I traced all the dependecy's for this piece of code.
    If I run this with Weblogic.jar[8.1] it gives me
    java.io.InvalidClassException: com.thortech.xl.dataaccess.tcDataSet; local class incompatible: stream classdesc serialVersionUID = -5446056666465114187, local class serialVersionUID = -8857647322544023100*
    With the compatablity issue I substituted with weblogic.jar:10.3 , now its giving me all classpath issues.
    Can someone layout the exact jars that are required for this to work?
    Thanks
    Vignesh

    Installl a Design Console. Copy any files that are required. Then take the class paths that are listed in the classpath and basecp files and put those into your application classpath files.
    -Kevin

  • Can no longer access the Canon Remote UI Management Mode (Portal) (on my Desktop Computer)

    I set up access to the Canon Remote UI Management Mode (Portal) using my IPv4 address so that I could make changes to the settings of my imageCLASS MF6160dw directly from my Desktop Computer. That has worked flawlessly for almost 3 months. Then, all of a sudden 3 days ago, I started getting this message: This page can't be displayed I have not added nor removed any equipment or software to my Desktop Computer. I also reconfirmed that my IPv4 address was correct.And I try to access the "Portal" numerous times at different times of the day & on different days. My Desktop Computer is a Dell XPS 8700 Special Edition running Windows Pro 8.1 (64-BIT) How can I regain access to the "Portal"?

    I never got a reply from anyone.
    But for those who viewed this thread & may also have this problem, I finally figured out that the IP Address had actually CHANGED.
    How & why it changed, I do not know.
    But, the last 2 digits of .15 changed to .2
    I can now access the Canon Remote UI Management Mode (Portal) by using the CHANGED IP Address.
    Hope this helps someone.

  • How do I resolve this error in Safari Your page is blocked due to a security policy that prohibits access to Category Remote Proxies"?

    I'm trying to access several pages and keep geting "Your page is blocked due to a security policy that prohibits access to Category Remote Proxies" After going over all my security stuff I just can't find where I would correct the error.
    Is there anyone who could help me?
    Thanks
    Fr. Gary

    very strange,
    1. check time and date on your computer
    2. reset network configuration, make sure there are no proxy servers and you get DNS from your router not manual
    3. Reset certificates database
    Go to Terminal (Applications>Utilities)
    sudo rm /var/db/crls/*cache.db
    (you will be prompted for your password)
    and reboot the computer
    post back

Maybe you are looking for