Installing IBM Content Navigator plugins with jenkins

Update: 01-09-2016: This jar is a little out of date as newer navigator builds require a little more for authentication..  Will post an update soon.

Last month i shared a tool that i’ve been using to automatically update code modules & event actions using the IBM Filenet Content Engine api. This month it’s time to share a tool i’ve created to automatically install or update IBM Content Navigator plugins.

Those working with ICN know the pain of navigating to the plugin page, loading, saving and refreshing – only later finding out that you re-loaded the wrong plugin.

So, in order to speed things up. Create the following batch instruction (in jenkins, or any build automation tool):

java -jar ICNPluginInstaller.jar "http://navigator:9080/navigator" "p8admin" "AYBABTU" "\\navigator\c$\IBM\plugins\cool plugin.jar"

The plugin uses the Navigator REST api to update or install the plugin, and has been tested to work on 2.0.2 fixpack 7 and 2.0.3 fixpack 5.

I’ll share the source shortly (after cleaning it up ;)). Until then you can find the .jar file here.

9 thoughts on “Installing IBM Content Navigator plugins with jenkins

  1. Hello,

    I tried executing the above command “java -jar ICNPluginInstaller.jar “http://local:9080/navigator” “admin” “password” “SearchPlugin.jar” and it ran just fine. I got the below message:

    Logging in with user admin
    Fetching current installed plugins.
    Installing plugin

    But, I am not sure how to verify that the plugin got loaded. When I logged in to CN GUI, I could not locate the Plugin. Can you please help ? Can we enable the plugin for a particular desktop ?

    Thanks
    Shruti

    1. Hi Shruti,

      Thanks a lot for your reply! One hint I can give you is that the path-to-jar needs to be an absolute path through which the navigator (serverside oriented) can reach the plugin.jar.

      E.g. ICNPluginInstaller.jar “http://local:9080/navigator” “admin” “password” “c:/plugins/SearchPlugin.jar”

      If that didn’t work, I’d be curious to the navigator version you are running:) and if you’re running application managed or server managed authentication

      1. I actually ran the tool from the /plugins directory itself and only provided the jar name. Navigator version is 2.0.3 and its application managed configuration.

        1. Hi Ivo Jonker,

          I tried using absolute path of ICNPluginInstaller.jar, then I am getting below error from WAS SystemOut.log

          com.ibm.ecm.struts.actions.authentication.LTPASSOLogon.getCurrentSubject() WebSphere runAsSubject() Subject:
          Principal: /UNAUTHENTICATED
          Public Credential: com.ibm.ws.security.auth.WSCredentialImpl@762ea008

          [2/28/17 6:56:06:390 CST] 000000d1 SystemOut O CIWEB Debug: [ ] [REQUEST 1138] com.ibm.ecm.struts.actions.authentication.LTPASSOLogon.getCurrentSubject() The WebSphere Subject is not authenticated

          But, I was able to load the same plugin from ICN GUI using same credentials which had admin rights.
          Do we need to set any additional security for this user when we run from linux command console?

          1. Hi Ram,

            The tool basically talks to the rest API the same way the ?Desktop=admin does. That being said it tries to authenticate using application based authentication which is what I think limits the use for your type of authentication (form based?).

            While I already made a newer implementation for a client of mine, I did not have time yet to update this one yet to include form based authentication.

            Hope to get to it soon!

  2. Hi Ivo Jonker,

    I tried using absolute path of ICNPluginInstaller.jar, then I am getting below error from WAS SystemOut.log

    com.ibm.ecm.struts.actions.authentication.LTPASSOLogon.getCurrentSubject() WebSphere runAsSubject() Subject:
    Principal: /UNAUTHENTICATED
    Public Credential: com.ibm.ws.security.auth.WSCredentialImpl@762ea008

    [2/28/17 6:56:06:390 CST] 000000d1 SystemOut O CIWEB Debug: [ ] [REQUEST 1138] com.ibm.ecm.struts.actions.authentication.LTPASSOLogon.getCurrentSubject() The WebSphere Subject is not authenticated

    But, I was able to load the same plugin from ICN GUI using same credentials which had admin rights.
    Do we need to set any additional security for this user when we run from linux command console?

    1. Hi Ivo Jonker,

      If you have some time to spend to update this tool, please let us know. If you share the updated one that will help us a lot.

Leave a Reply to Ram Cancel reply

Your email address will not be published. Required fields are marked *