{"id":27571,"date":"2023-09-04T13:59:58","date_gmt":"2023-09-04T11:59:58","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=27571"},"modified":"2023-10-12T10:39:04","modified_gmt":"2023-10-12T08:39:04","slug":"jboss-eap-7-use-vault-to-protect-your-passwords","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/","title":{"rendered":"JBoss EAP 7 &#8211; Use vault to protect passwords"},"content":{"rendered":"\n<p>JBoss EAP simplifies a lot of server configuration by consolidating all subsystem configurations into a  single XML file (standalone.xml or domain.xml). This, however, can expose sensitive information to any user that has access to the configuration files. For example, datasource credentials are by default stored in plain text in the XML file. In this blog I will show you how to protect your passwords!<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-the-vault-password\">What is the vault password?<\/h2>\n\n\n\n<p>The vault encrypts sensitive strings, stores them in an encrypted keystore, and decrypts them for  applications and verification systems. To avoid leaving sensitive credentials readable in the <em>standalone.xml<\/em> or <em>domain.xml<\/em> files, you can store passwords or other attributes in the vault and then reference the vault from within the server configuration file. <\/p>\n\n\n\n<p>Using a vault creates a level of abstraction and obfuscates data which could otherwise be read by anyone who has access to the configuration files. Please note that the access to the configuration files should be anyway restricted.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-create-a-java-keystore-to-store-sensitive-strings\">Create a Java Keystore to store sensitive strings<\/h2>\n\n\n\n<p>The vault utilizes a keystore by using the certificate stored in the keystore as an encryption key for the  vault as a whole. To initialize the vault, users need to first create the JavaSE keystore. The following is the syntax used to create a private key, a certificate and to store them in a keystore:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>keytool -genseckey -alias &lt;alias&gt; -keyalg &lt;algorithm&gt; -storetype &lt;type&gt; -keysize size -keystore &lt;filepath&gt;<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>alias: The alias is a unique identifier for the vault or other data stored in the keystore.<\/li>\n\n\n\n<li>keyalg: The algorithm to use for encryption.<\/li>\n\n\n\n<li>storetype: The keystore type. jceks is the recommended type.<\/li>\n\n\n\n<li>keysize The size of the encryption key which determines the difficulty in brute forcing the<br>key.<\/li>\n\n\n\n<li>keystore: The file path and file name in which the keystore&#8217;s values are stored.<\/li>\n<\/ul>\n\n\n\n<p>The below is an example:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;jboss@vmjboss jboss]# keytool -genseckey -alias vault -keyalg AES -storetype jceks -keysize 128 -keystore \/app\/jboss\/vault.keystore\nEnter keystore password:  \nRe-enter new password: \nEnter key password for &lt;vault&gt;\n\t(RETURN if same as keystore password):  \n\nWarning:\nThe JCEKS keystore uses a proprietary format. It is recommended to migrate to PKCS12 which is an industry standard format using \"keytool -importkeystore -srckeystore \/app\/jboss\/vault.keystore -destkeystore \/app\/jboss\/vault.keystore -deststoretype pkcs12\".\n&#091;jboss@vmjboss jboss]# ls -rtl \/app\/jboss\/\ntotal 4\n-rw-r--r-- 1 jboss jboss 500 Sep  4 10:56 vault.keystore<\/code><\/pre>\n\n\n\n<p>After running the command, you will be prompted for a keystore password and a keystore file will be created at \/app\/jboss\/vault.keystore.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-using-the-vault\">Using the vault<\/h2>\n\n\n\n<p>The vault can be initialized either interactively, by providing each parameter one at a time, or by providing all of the parameters initially.<\/p>\n\n\n\n<p>The following is an example of the syntax used to initialize the vault:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>vault.sh --keystore KEYSTORE_URL --keystore-password KEYSTORE_PASSWORD --alias KEYSTORE_ALIAS --vault-block VAULT_BLOCK --attribute ATTRIBUTE --sec-attr SEC-ATTR --enc-dir ENC_FILE_DIR --iteration ITERATION_COUNT --salt SALT<\/code><\/pre>\n\n\n\n<p>The following parameters are required to initialize the vault:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>KEYSTORE_URL: The path to the previously created keystore file.<\/li>\n\n\n\n<li>KEYSTORE_PASSWORD: The password to access the keystore that was used at the keystore&#8217;s<br>creation.<\/li>\n\n\n\n<li>SALT: A random string of eight characters used to encrypt the attribute stored in the vault.<\/li>\n\n\n\n<li>KEYSTORE_ALIAS: The alias that identifies the certificate stored in the keystore.<\/li>\n\n\n\n<li>ITERATION_COUNT: The number of times encryption is run.<\/li>\n\n\n\n<li>ENC_FILE_DIR: The path where the encrypted files are stored.<\/li>\n\n\n\n<li>VAULT_BLOCK: The name to be given to the block in the vault.<\/li>\n\n\n\n<li>ATTRIBUTE: The name of the attribute being stored. For example, &#8220;password&#8221; as an attribute<br>name when storing a password value.<\/li>\n\n\n\n<li>SEC-ATTR: The value being stored.<\/li>\n<\/ul>\n\n\n\n<p>The following is an example with the parameters populated:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;jboss@vmjboss bin]# vault.sh --keystore \/app\/jboss\/vault.keystore --keystore-password password --alias vault --vault-block blog --attribute password --sec-attr blogpass --enc-dir \/app\/jboss\/ --iteration 50 --salt 12345678<\/code><\/pre>\n\n\n\n<p>After running the vault.sh command, an XML definition of the vault is displayed, which needs to be added to the server configuration files. The following is an example of the XML that needs to be added to either the <em>standalone.xml<\/em> or <em>host.xml <\/em>configuration file directly before the section:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;vault&gt;\n&lt;vault-option name=\"KEYSTORE_URL\" value=\"\/app\/jboss\/vault.keystore\"\/&gt;\n&lt;vault-option name=\"KEYSTORE_PASSWORD\" value=\"MASK-31x\/z0Xn83H4JaL0h5eK\/N\"\/&gt;\n&lt;vault-option name=\"KEYSTORE_ALIAS\" value=\"vault\"\/&gt;\n&lt;vault-option name=\"SALT\" value=\"12345678\"\/&gt;\n&lt;vault-option name=\"ITERATION_COUNT\" value=\"50\"\/&gt;\n&lt;vault-option name=\"ENC_FILE_DIR\" value=\"\/app\/jboss\/\"\/&gt;\n&lt;\/vault&gt;<\/code><\/pre>\n\n\n\n<p>The final step is to replace the sensitive data with a reference to the attribute in the vault. The vault.sh command provides the exact syntax necessary to reference the secured attribute after all of the parameters are provided. Using the previous example, the vault command generated the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VAULT::blog::password::1<\/code><\/pre>\n\n\n\n<p>In order to use this reference, use the following syntax within the server configuration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>${VAULT::VAULT_BLOCK::ATTRIBUTE_NAME::1}<\/code><\/pre>\n\n\n\n<p>The following can replace the previous password in the server configuration for the blog datasource password:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>${VAULT::blog::password::1}<\/code><\/pre>\n\n\n\n<p>After replacing the password for the datasource, the server configuration for the datasource will look similar to the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;datasource jndi-name=\"java:jboss\/datasources\/blogope\" ...&gt;\n&lt;connection-url&gt;...&lt;\/connection-url&gt;\n&lt;driver&gt;mysql&lt;\/driver&gt;\n&lt;security&gt;\n&lt;user-name&gt;blogadmin&lt;\/user-name&gt;\n&lt;password&gt;<strong>${VAULT::blog::password::1}<\/strong>&lt;\/password&gt;\n&lt;\/security&gt;\n&lt;\/datasource&gt;<\/code><\/pre>\n\n\n\n<p>In this blog we saw how to protect passwords or any sensitive data in configuration files. Don&#8217;t forget to restrict the access to your configuration files also!<\/p>\n\n\n\n<p>Don&#8217;t hesitate to comment this blog, for any question or to share your experience with vault within JBoss EAP. <\/p>\n\n\n\n<p>Some blogs around JBoss EAP:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>J<a href=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-modules-extensions-subsystems-and-profiles\/\">Boss EAP 7 \u2013 Modules, Extensions, Subsystems, and Profiles<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-domain-creation\/\">JBoss EAP 7 \u2013 Domain creation<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-cluster-in-standalone-mode\/\">JBoss EAP 7 \u2013 Cluster in Standalone mode<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>JBoss EAP simplifies a lot of server configuration by consolidating all subsystem configurations into a single XML file (standalone.xml or domain.xml). This, however, can expose sensitive information to any user that has access to the configuration files. For example, datasource credentials are by default stored in plain text in the XML file. In this blog [&hellip;]<\/p>\n","protected":false},"author":46,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2748],"tags":[2610,119,2757,2564,1100],"type_dbi":[],"class_list":["post-27571","post","type-post","status-publish","format-standard","hentry","category-weblogic","tag-jboss-2","tag-jboss-eap","tag-jboss-eap-2","tag-security-3","tag-wildfly"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>JBoss EAP 7 - Use vault to protect passwords - 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\/jboss-eap-7-use-vault-to-protect-your-passwords\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JBoss EAP 7 - Use vault to protect passwords\" \/>\n<meta property=\"og:description\" content=\"JBoss EAP simplifies a lot of server configuration by consolidating all subsystem configurations into a single XML file (standalone.xml or domain.xml). This, however, can expose sensitive information to any user that has access to the configuration files. For example, datasource credentials are by default stored in plain text in the XML file. In this blog [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-04T11:59:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-12T08:39:04+00:00\" \/>\n<meta name=\"author\" content=\"David Diab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Diab\" \/>\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\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/\"},\"author\":{\"name\":\"David Diab\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/deb907c3360cacdc6c7df54b4bac3c86\"},\"headline\":\"JBoss EAP 7 &#8211; Use vault to protect passwords\",\"datePublished\":\"2023-09-04T11:59:58+00:00\",\"dateModified\":\"2023-10-12T08:39:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/\"},\"wordCount\":712,\"commentCount\":8,\"keywords\":[\"JBoss\",\"JBoss EAP\",\"JBoss-EAP\",\"Security\",\"WildFly\"],\"articleSection\":[\"WebLogic\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/\",\"name\":\"JBoss EAP 7 - Use vault to protect passwords - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2023-09-04T11:59:58+00:00\",\"dateModified\":\"2023-10-12T08:39:04+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/deb907c3360cacdc6c7df54b4bac3c86\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/jboss-eap-7-use-vault-to-protect-your-passwords\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JBoss EAP 7 &#8211; Use vault to protect passwords\"}]},{\"@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\\\/deb907c3360cacdc6c7df54b4bac3c86\",\"name\":\"David Diab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g\",\"caption\":\"David Diab\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/david-diab\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"JBoss EAP 7 - Use vault to protect passwords - 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\/jboss-eap-7-use-vault-to-protect-your-passwords\/","og_locale":"en_US","og_type":"article","og_title":"JBoss EAP 7 - Use vault to protect passwords","og_description":"JBoss EAP simplifies a lot of server configuration by consolidating all subsystem configurations into a single XML file (standalone.xml or domain.xml). This, however, can expose sensitive information to any user that has access to the configuration files. For example, datasource credentials are by default stored in plain text in the XML file. In this blog [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/","og_site_name":"dbi Blog","article_published_time":"2023-09-04T11:59:58+00:00","article_modified_time":"2023-10-12T08:39:04+00:00","author":"David Diab","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Diab","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/"},"author":{"name":"David Diab","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"headline":"JBoss EAP 7 &#8211; Use vault to protect passwords","datePublished":"2023-09-04T11:59:58+00:00","dateModified":"2023-10-12T08:39:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/"},"wordCount":712,"commentCount":8,"keywords":["JBoss","JBoss EAP","JBoss-EAP","Security","WildFly"],"articleSection":["WebLogic"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/","url":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/","name":"JBoss EAP 7 - Use vault to protect passwords - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2023-09-04T11:59:58+00:00","dateModified":"2023-10-12T08:39:04+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/deb907c3360cacdc6c7df54b4bac3c86"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/jboss-eap-7-use-vault-to-protect-your-passwords\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"JBoss EAP 7 &#8211; Use vault to protect passwords"}]},{"@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\/deb907c3360cacdc6c7df54b4bac3c86","name":"David Diab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/212b1b2e4650bad3116f644ab4fb4663786d94195d7685d0704c8426da088e60?s=96&d=mm&r=g","caption":"David Diab"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/david-diab\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27571","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\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=27571"}],"version-history":[{"count":8,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27571\/revisions"}],"predecessor-version":[{"id":34784,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27571\/revisions\/34784"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=27571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=27571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=27571"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=27571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}