{"id":17168,"date":"2022-04-28T12:03:55","date_gmt":"2022-04-28T10:03:55","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/"},"modified":"2024-09-10T17:29:17","modified_gmt":"2024-09-10T15:29:17","slug":"how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/","title":{"rendered":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues."},"content":{"rendered":"<p>Recently I got the request to provide JMS Queues monitoring access to a group of users with the privileges to view and manage de messages in the queues. This can be done through the WebLogic console but for this customer, all is done via ansible scripts. Thus I had to find a scripting solution. <\/p>\n<p>I followed the <a href=\"https:\/\/docs.oracle.com\/en\/middleware\/fusion-middleware\/weblogic-server\/12.2.1.4\/roles\/xacmlusing.html#GUID-52A3A10F-03B8-4BD9-97CE-F32DCFD8580F\" rel=\"noopener\" target=\"_blank\">Oracle documentation<\/a> to create the policy.<\/p>\n<p>Extract of the WLST code:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1 highlight: []\">\ntry:\n&nbsp;&nbsp;&nbsp;print \"applying JMS access policy for domain\", domainName\n&nbsp;&nbsp;&nbsp;xacmlFile = open('XACMLAuthorizer.xml','r')\n&nbsp;&nbsp;&nbsp;xacmlDoc = xacmlFile.read()\n&nbsp;&nbsp;&nbsp;print(xacmlDoc)\n&nbsp;&nbsp;&nbsp;print \"cd('\/SecurityConfiguration\/\" + domainName + \"\/DefaultRealm\/myrealm\/Authorizers\/XACMLAuthorizer')\"\n&nbsp;&nbsp;&nbsp;cd('\/SecurityConfiguration\/' + domainName + '\/DefaultRealm\/myrealm\/Authorizers\/XACMLAuthorizer')\n&nbsp;&nbsp;&nbsp;print \"add policy\"\n&nbsp;&nbsp;&nbsp;cmo.addPolicy(xacmlDoc)\n&nbsp;&nbsp;&nbsp;print \"done applying policy\"\n&nbsp;&nbsp;&nbsp;return True\nexcept Exception, inst:\n&nbsp;&nbsp;&nbsp;print inst\n&nbsp;&nbsp;&nbsp;print sys.exc_info()[0]\n&nbsp;&nbsp;&nbsp;dumpStack()\n&nbsp;&nbsp;&nbsp;sys.stderr.write(\"unable to apply JMS access policy for domain \" + domainName)\n&nbsp;&nbsp;&nbsp;return False\n<\/pre>\n<p>The XACMLAuthorizer.xml policy file:<\/p>\n<pre class=\"brush: bash; gutter: false; first-line:  highlight: []\">\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;Policy PolicyId=\"urn:bea:xacml:2.0:entitlement:resource:type@E@Fjmx@G@M@Ooperation@Einvoke@M@Oapplication@E@M@OmbeanType@Eweblogic.management.runtime.JMSDestinationRuntimeMBean\" RuleCombiningAlgId=\"urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:first-applicable\"&gt;\n  &lt;Description&gt;Rol(Admin,MonitorJMSQueues)type=&amp;lt;jmx&amp;gt;, operation=invoke, application=, mbeanType=weblogic.management.runtime.JMSDestinationRuntimeMBean&lt;\/AttributeValue&gt;\n          &lt;ResourceAttributeDesignator AttributeId=\"urn:oasis:names:tc:xacml:2.0:resource:resource-ancestor-or-self\" DataType=\"http:\/\/www.w3.org\/2001\/XMLSchema#string\" MustBePresent=\"true\"\/&gt;\n        &lt;\/ResourceMatch&gt;\n      &lt;\/Resource&gt;\n    &lt;\/Resources&gt;\n  &lt;\/Target&gt;\n  &lt;Rule RuleId=\"primary-rule\" Effect=\"Permit\"&gt;\n    &lt;Condition&gt;\n      &lt;Apply FunctionId=\"urn:oasis:names:tc:xacml:1.0:function:string-at-least-one-member-of\"&gt;\n        &lt;Apply FunctionId=\"urn:oasis:names:tc:xacml:1.0:function:string-bag\"&gt;\n          &lt;AttributeValue DataType=\"http:\/\/www.w3.org\/2001\/XMLSchema#string\"&gt;Admin&lt;\/AttributeValue&gt;\n          &lt;AttributeValue DataType=\"http:\/\/www.w3.org\/2001\/XMLSchema#string\"&gt;MonitorJMSQueues&lt;\/AttributeValue&gt;\n        &lt;\/Apply&gt;\n        &lt;SubjectAttributeDesignator AttributeId=\"urn:oasis:names:tc:xacml:2.0:subject:role\" DataType=\"http:\/\/www.w3.org\/2001\/XMLSchema#string\"\/&gt;\n      &lt;\/Apply&gt;\n    &lt;\/Condition&gt;\n  &lt;\/Rule&gt;\n  &lt;Rule RuleId=\"deny-rule\" Effect=\"Deny\"\/&gt;\n&lt;\/Policy&gt;\n<\/pre>\n<p>The script works fine but I get the following error when trying to see the messages stored in the JMS Queue. <\/p>\n<p><code><br \/>\n&lt;Administration Console encountered the following error:<br \/>\nweblogic.management.NoAccessRuntimeException: Access not allowed for subject:<br \/>\nprincipals=[&lt;LIST-OF-PRINCIPALS],<br \/>\non Resource weblogic.management.runtime.JMSDestinationRuntimeMBeanOperation: invoke , Target: getMessages<br \/>\nat weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:295)<br \/>\nat weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:299)<br \/>\nat javax.management.remote.rmi.RMIConnectionImpl_12214_WLStub.invoke(UnknownSource)<br \/>\nat javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1020)<br \/>\nat sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)<br \/>\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br \/>\nat java.lang.reflect.Method.invoke(Method.java:498)<br \/>\nat weblogic.management.remote.wlx.ClientProvider$WLXRMIConnectorWrapper$1$1.call(ClientProvider.java:715)<br \/>\nat weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:287)<br \/>\nat weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:272)<br \/>\nat weblogic.management.remote.wlx.ClientProvider$WLXRMIConnectorWrapper$1.invoke(ClientProvider.java:709)<br \/>\nat com.sun.proxy.$Proxy115.invoke(Unknown Source)<br \/>\nat sun.reflect.GeneratedMethodAccessor154.invoke(Unknown Source)<br \/>\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br \/>\nat java.lang.reflect.Method.invoke(Method.java:498)<br \/>\nat weblogic.management.remote.wlx.ClientProvider$WLXRMIConnectorWrapper$1$1.call(ClientProvider.java:715)<br \/>\nat weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:287)<br \/>\n...<\/code><\/p>\n<p>The policy was not applied until I go to the WebLogic console and save the policy following the steps below:<\/p>\n<li>&#8211; Under Security Realms -&gt; &#8220;Roles and Policies&#8221; -&gt; Realm Policies, in the Policy table, select &#8220;JMX Policy Editor.&#8221;<br \/>\n&#8211; Select &#8220;Global Scope&#8221; and click Next.<br \/>\n&#8211; From MBean Types, open &#8220;weblogic.management.runtime&#8221;<br \/>\n&#8211; Select &#8220;JMSDestinationRuntimeMBean&#8221; and click next.<br \/>\n&#8211; In Attributes and Operations, select the View edit link for the &#8220;Operations: Permission to Invoke.&#8221;\n<\/li>\n<p>There I see the policy created with the WLST script. If I click on the save button, then the policy works.<\/p>\n<p>The documentation doesn&#8217;t tell it but there a setPolicyExpression call needed after the addPolicy. This to apply the loaded policy.<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1 highlight: [11]\">\ntry:\n&nbsp;&nbsp;&nbsp;print \"applying JMS access policy for domain\", domainName\n&nbsp;&nbsp;&nbsp;xacmlFile = open('XACMLAuthorizer.xml','r')\n&nbsp;&nbsp;&nbsp;xacmlDoc = xacmlFile.read()\n&nbsp;&nbsp;&nbsp;print(xacmlDoc)\n&nbsp;&nbsp;&nbsp;print \"cd('\/SecurityConfiguration\/\" + domainName + \"\/DefaultRealm\/myrealm\/Authorizers\/XACMLAuthorizer')\"\n&nbsp;&nbsp;&nbsp;cd('\/SecurityConfiguration\/' + domainName + '\/DefaultRealm\/myrealm\/Authorizers\/XACMLAuthorizer')\n&nbsp;&nbsp;&nbsp;print \"add policy\"\n&nbsp;&nbsp;&nbsp;cmo.addPolicy(xacmlDoc)\n&nbsp;&nbsp;&nbsp;print \"Applying policy done\"\n&nbsp;&nbsp;&nbsp;cmo.setPolicyExpression('type=&lt;jmx&gt;','{Rol(Admin) | Rol(MonitorJMSQueues)}')\n&nbsp;&nbsp;&nbsp;print \"Set policy done\"\n&nbsp;&nbsp;&nbsp;return True\nexcept Exception, inst:\n&nbsp;&nbsp;&nbsp;print inst\n&nbsp;&nbsp;&nbsp;print sys.exc_info()[0]\n&nbsp;&nbsp;&nbsp;dumpStack()\n&nbsp;&nbsp;&nbsp;sys.stderr.write(\"unable to apply JMS access policy for domain \" + domainName)\n&nbsp;&nbsp;&nbsp;return False\n<\/pre>\n<p>After this, the users or groups of users having the roles MonitorJMSQueues and Monitor assigned are able to monitor the the JMS queues and manage the messages in them.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently I got the request to provide JMS Queues monitoring access to a group of users with the privileges to view and manage de messages in the queues. This can be done through the WebLogic console but for this customer, all is done via ansible scripts. Thus I had to find a scripting solution. I [&hellip;]<\/p>\n","protected":false},"author":40,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[],"type_dbi":[],"class_list":["post-17168","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to allow users having monitoring role to view and manage messages in WebLogic JMS queues. - dbi Blog<\/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:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues.\" \/>\n<meta property=\"og:description\" content=\"Recently I got the request to provide JMS Queues monitoring access to a group of users with the privileges to view and manage de messages in the queues. This can be done through the WebLogic console but for this customer, all is done via ansible scripts. Thus I had to find a scripting solution. I [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-04-28T10:03:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-10T15:29:17+00:00\" \/>\n<meta name=\"author\" content=\"Middleware Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Middleware Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\"},\"author\":{\"name\":\"Middleware Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"headline\":\"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues.\",\"datePublished\":\"2022-04-28T10:03:55+00:00\",\"dateModified\":\"2024-09-10T15:29:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\"},\"wordCount\":259,\"commentCount\":0,\"articleSection\":[\"Application integration &amp; Middleware\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\",\"name\":\"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues. - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2022-04-28T10:03:55+00:00\",\"dateModified\":\"2024-09-10T15:29:17+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1\",\"name\":\"Middleware Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g\",\"caption\":\"Middleware Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues. - dbi Blog","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:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/","og_locale":"en_US","og_type":"article","og_title":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues.","og_description":"Recently I got the request to provide JMS Queues monitoring access to a group of users with the privileges to view and manage de messages in the queues. This can be done through the WebLogic console but for this customer, all is done via ansible scripts. Thus I had to find a scripting solution. I [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/","og_site_name":"dbi Blog","article_published_time":"2022-04-28T10:03:55+00:00","article_modified_time":"2024-09-10T15:29:17+00:00","author":"Middleware Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Middleware Team","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/"},"author":{"name":"Middleware Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"headline":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues.","datePublished":"2022-04-28T10:03:55+00:00","dateModified":"2024-09-10T15:29:17+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/"},"wordCount":259,"commentCount":0,"articleSection":["Application integration &amp; Middleware"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/","url":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/","name":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues. - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2022-04-28T10:03:55+00:00","dateModified":"2024-09-10T15:29:17+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-to-allow-users-having-monitoring-role-to-view-and-manage-messages-in-weblogic-jms-queues\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to allow users having monitoring role to view and manage messages in WebLogic JMS queues."}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d8563acfc6e604cce6507f45bac0ea1","name":"Middleware Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ddcae7ba0f9d1a0e7ae707f0e689e4a9c95bb48ec49c8e6d9cc86d43f4121cb6?s=96&d=mm&r=g","caption":"Middleware Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/middleware-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17168","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/40"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=17168"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17168\/revisions"}],"predecessor-version":[{"id":34680,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17168\/revisions\/34680"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=17168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=17168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=17168"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=17168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}