{"id":18196,"date":"2022-07-31T11:34:00","date_gmt":"2022-07-31T09:34:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=18196"},"modified":"2022-07-29T19:13:33","modified_gmt":"2022-07-29T17:13:33","slug":"documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/","title":{"rendered":"Documentum &#8211; RED Warning on D2 after enabling Tomcat HTTP Security Headers"},"content":{"rendered":"\n<p>Security is and will always be a very important aspect of IT. Enterprise Content Management (or Document Management Systems or Content Services Platform or whateveryoucallit) is obviously not an exception to that. One of our main goals as a consultant is to add improvements to our customers&#8217; installations for stability, security, and ease of management. However, it happens that not everything goes as planned\u2026 In this blog, I will discuss about a small but still annoying issue that appeared on D2 20.2 after enabling the <a href=\"https:\/\/tomcat.apache.org\/tomcat-9.0-doc\/config\/filter.html#HTTP_Header_Security_Filter\" target=\"_blank\" rel=\"noreferrer noopener\">Tomcat HTTP Security Headers<\/a> at a customer.<\/p>\n\n\n\n<p>D2 provides some capabilities to add some of the standard HTTP Security Headers via its own internal configuration. It already supports the HTTP Strict Transport Security (HSTS) and inside the &#8220;<em>settings.properties<\/em>&#8221; file, you can define some parameters like the HSTS max age (<em>hsts.maxage=xxx<\/em>). In this file, you can also configure D2 for anti-clickjacking (<em>allowed.frame.origins=xxx<\/em>). However, that&#8217;s not all the HTTP Security Headers, and you probably are using other applications besides D2 that are deployed on Tomcat in your company. Therefore, you might start looking at putting the configuration not on the application but instead on the Tomcat layer, to have a common configuration, enterprise wise.<\/p>\n\n\n\n<p>Tomcat HTTP Security Headers (I&#8217;m only talking about &#8220;<em>httpHeaderSecurity<\/em>&#8221; filter here) doesn&#8217;t support everything but it&#8217;s still a good base so it might make sense to configure the headers at that layer. What is missing in the Tomcat HTTP Security Headers from the list of &#8220;common&#8221; Security Headers to define is mainly the Cache-Control, the Content-Security-Policy\/CSP (<a href=\"https:\/\/www.dbi-services.com\/blog\/documentum-applying-content-security-policy-csp-with-d2-wsctf-plugin\/\" target=\"_blank\" rel=\"noreferrer noopener\">here<\/a> is a blog related to CSP config in regards to D2 WSCTF, if needed) and the Cross-Origin Resource Sharing\/CORS but all of these can be configured through other filters (eithers OOTB filters or custom ones that you need to deploy). By default, the Tomcat HTTP Security Headers are disabled (commented):<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&#x5B;tomcat@d2-0 ~]$ web_xml=&quot;$TOMCAT_HOME\/conf\/web.xml&quot;\n&#x5B;tomcat@d2-0 ~]$\n&#x5B;tomcat@d2-0 ~]$ grep -B2 -A4 &#039;httpHeaderSecurity&#039; ${web_xml}\n&lt;!--\n    &lt;filter&gt;\n        &lt;filter-name&gt;httpHeaderSecurity&lt;\/filter-name&gt;\n        &lt;filter-class&gt;org.apache.catalina.filters.HttpHeaderSecurityFilter&lt;\/filter-class&gt;\n        &lt;async-supported&gt;true&lt;\/async-supported&gt;\n    &lt;\/filter&gt;\n--&gt;\n--\n&lt;!--\n    &lt;filter-mapping&gt;\n        &lt;filter-name&gt;httpHeaderSecurity&lt;\/filter-name&gt;\n        &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt;\n        &lt;dispatcher&gt;REQUEST&lt;\/dispatcher&gt;\n    &lt;\/filter-mapping&gt;\n--&gt;\n&#x5B;tomcat@d2-0 ~]$\n<\/pre><\/div>\n\n\n<p>To enable it, you just need to uncomment the two sections (remove &#8216;<em>&lt;!&#8211;<\/em>&#8216; before the XML tag and &#8216;<em>&#8211;&gt;<\/em>&#8216; after) and you can of course start filling it with what you need. Here is a possible configuration:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&#x5B;tomcat@d2-0 ~]$ cat ${web_xml}\n...\n\n    &lt;filter&gt;\n        &lt;filter-name&gt;httpHeaderSecurity&lt;\/filter-name&gt;\n        &lt;filter-class&gt;org.apache.catalina.filters.HttpHeaderSecurityFilter&lt;\/filter-class&gt;\n        &lt;async-supported&gt;true&lt;\/async-supported&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;hstsEnabled&lt;\/param-name&gt;\n            &lt;param-value&gt;true&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;hstsMaxAgeSeconds&lt;\/param-name&gt;\n            &lt;param-value&gt;63072000&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;hstsIncludeSubDomains&lt;\/param-name&gt;\n            &lt;param-value&gt;true&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;hstsPreload&lt;\/param-name&gt;\n            &lt;param-value&gt;false&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;antiClickJackingEnabled&lt;\/param-name&gt;\n            &lt;param-value&gt;true&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;antiClickJackingOption&lt;\/param-name&gt;\n            &lt;param-value&gt;SAMEORIGIN&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;blockContentTypeSniffingEnabled&lt;\/param-name&gt;\n            &lt;param-value&gt;true&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n        &lt;init-param&gt;\n            &lt;param-name&gt;xssProtectionEnabled&lt;\/param-name&gt;\n            &lt;param-value&gt;true&lt;\/param-value&gt;\n        &lt;\/init-param&gt;\n    &lt;\/filter&gt;\n\n...\n\n    &lt;filter-mapping&gt;\n        &lt;filter-name&gt;httpHeaderSecurity&lt;\/filter-name&gt;\n        &lt;url-pattern&gt;\/*&lt;\/url-pattern&gt;\n        &lt;dispatcher&gt;REQUEST&lt;\/dispatcher&gt;\n    &lt;\/filter-mapping&gt;\n\n...\n&#x5B;tomcat@d2-0 ~]$\n<\/pre><\/div>\n\n\n<p>The above is just an example but that&#8217;s how you enable the Tomcat HTTP Security Headers. Now coming to the issue I wanted to talk about in this blog\u2026 With these new headers in place, all applications (D2, D2-Config, D2-Smartview, D2-REST, DA, \u2026) appeared to be working fine, no issues were reported by the tests done until someone tried to click on a link received by mail a few days before, and he got this beautiful screen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-style-default\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"481\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png\" alt=\"Tomcat Red Warning\" class=\"wp-image-18199\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-300x141.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-768x361.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning.png 1346w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>When that appeared, the following message was also printed on the Tomcat logs:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: java; highlight: [2,3,11,12]; title: ; notranslate\" title=\"\">\n2022-03-03 13:56:52,342 UTC SEVERE &#x5B;https-jsse-nio-8080-exec-27] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet &#x5B;jsp] in context with path &#x5B;\/D2] threw exception &#x5B;Unable to add HTTP headers since response is already committed on entry to the HTTP header security Filter] with root cause\n\tjavax.servlet.ServletException: Unable to add HTTP headers since response is already committed on entry to the HTTP header security Filter\n\t\tat org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:101)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\t\tat com.emc.x3.portal.server.filters.HttpHeaderFilter.doFilter(HttpHeaderFilter.java:87)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\t\tat org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n\t\tat org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n\t\tat com.emc.x3.portal.server.filters.authc.X3SAMLHttpAuthenticationFilter.executeChain(X3SAMLHttpAuthenticationFilter.java:356)\n\t\tat org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n\t\tat org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n\t\tat org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n\t\tat org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n\t\tat org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)\n\t\tat org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n\t\tat org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n\t\tat org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n\t\tat org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n\t\tat org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n\t\tat com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)\n\t\tat com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\t\tat com.emc.x3.portal.server.filters.X3SessionTimeoutFilter.doFilter(X3SessionTimeoutFilter.java:40)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)\n\t\tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)\n\t\tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)\n\t\tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)\n\t\tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)\n\t\tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)\n\t\tat org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)\n\t\tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\n\t\tat org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\n\t\tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\n\t\tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\n\t\tat org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\n\t\tat org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\n\t\tat org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)\n\t\tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)\n\t\tat org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n\t\tat org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)\n\t\tat org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)\n\t\tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\n\t\tat java.base\/java.lang.Thread.run(Thread.java:829)\n<\/pre><\/div>\n\n\n<p>As you can see, it seems to be linked to what was just configured (&#8220;<em>HttpHeaderSecurityFilter<\/em>&#8221; on the first line of the stack trace) and there is also quite a bit of &#8220;<em>shiro<\/em>&#8221; references as well as a &#8220;<em>X3SAMLHttpAuthenticationFilter<\/em>&#8220;. It would therefore indicate that the issue is most probably linked to the Single Sign-On in relation with the Tomcat HTTP Security Headers. Since Tomcat is unable to add the required HTTP Security Headers, then it fails the request and print the red warning page.<\/p>\n\n\n\n<p>What happened is that the link on the mail contained URL parameters (<em>i.e.,<\/em> the &#8220;query&#8221; part) so it was something like &#8220;<em>https:\/\/dns\/D2?docbase=xxx&amp;locateId=xxx<\/em>&#8220;. D2 was fully working properly, except when someone tried to directly open a link from a mail without opening D2 first, which shouldn&#8217;t be a problem under normal circumstances\u2026 When that happened, the user was redirected to the Single Sign-On (AzureAD SAML2, configured on the shiro.ini), and then back to D2, which was supposed to handle the user&#8217;s request but failed because of the above Tomcat error. In addition to the issue (and the nice red warning screen), the URL changed to &#8220;<em>https:\/\/dns\/D2<\/em>&#8221; (<em>i.e.,<\/em> the URL parameters were lost in the process).<\/p>\n\n\n\n<p>However, clicking a second time on the link from the mail worked properly and displayed the document correctly (using the &#8220;<em>locateId<\/em>&#8221; parameter)! The easiest way to replicate the issue was therefore to clear the cookies and access any URL with parameters. It appeared to me that, the issue would only show up if there is no SAML cookies (<em>SAMLNameID<\/em>, <em>SAMLSessionIndex<\/em>). After disabling the SSO (<em>i.e.,<\/em> renaming\/removing the &#8220;<em>shiro.ini<\/em>&#8221; file and restarting Tomcat), the issue wasn&#8217;t reproducible anymore. This confirmed my assumptions that there is a conflict between how D2 handles the SAML response and how Tomcat adds the HTTP Security Headers (&#8220;<em>response is already committed<\/em>&#8220;).<\/p>\n\n\n\n<p>With that in mind, I opened the OpenText <em>SR#5056234<\/em>, to see if it was a D2 bug or something else. After some more investigations, I got the information from OpenText that this is apparently happening because of the open source third party library that is used for SSO (<em>i.e.,<\/em> <a href=\"https:\/\/shiro.apache.org\/documentation.html\" target=\"_blank\" rel=\"noreferrer noopener\">Apache Shiro<\/a>). Without Apache Shiro, the HTTP Security Headers are properly added\/modified by the <em>doFilter()<\/em> function before the servlet action is done. However, with Apache Shiro (that chains additional filters), the order of filters execution appears to be changed and, in this case, the response is already committed before Tomcat has the chance to add the necessary HTTP Security Headers, which triggers this error. As far as I know, this issue doesn&#8217;t happen with OTDS SSO, so I assume different libraries are in play there.<\/p>\n\n\n\n<p>Since this issue can be seen as soon as the Tomcat HTTP Security Headers are enabled (even if you don&#8217;t specify any configuration for the filter), then it kind of makes it difficult to setup it up at the Tomcat layer. D2 20.2 uses Apache Shiro 1.4.2 (Nov-2019) while the latest version, as of today, is 1.9.1 (Jun-2022). I didn&#8217;t check but this issue might have been solved in a later version. Therefore, potential solutions could be to update the libraries (knowing that it could bring issues as well\u2026) or simply to NOT configure the HTTP Security Headers on Tomcat, but instead put them one level above. If you are using Tomcat, there is a good chance that you have a front-end on top of it like Apache HTTPD or Nginx. The issue being related to Tomcat servlet handling, configuring\/adding the HTTP Security Headers upfront will prevent the issue to appear altogether, hence that would most probably be the preferred solution.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Security is and will always be a very important aspect of IT. Enterprise Content Management (or Document Management Systems or Content Services Platform or whateveryoucallit) is obviously not an exception to that. One of our main goals as a consultant is to add improvements to our customers&#8217; installations for stability, security, and ease of management. [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,525],"tags":[2638,443,2609,1229,2564,445,771],"type_dbi":[],"class_list":["post-18196","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","category-enterprise-content-management","tag-azuread","tag-d2","tag-documentum-2","tag-saml2","tag-security-3","tag-sso","tag-tomcat"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers - 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\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers\" \/>\n<meta property=\"og:description\" content=\"Security is and will always be a very important aspect of IT. Enterprise Content Management (or Document Management Systems or Content Services Platform or whateveryoucallit) is obviously not an exception to that. One of our main goals as a consultant is to add improvements to our customers&#8217; installations for stability, security, and ease of management. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-31T09:34:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png\" \/>\n<meta name=\"author\" content=\"Morgan Patou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MorganPatou\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Morgan Patou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 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\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/\"},\"author\":{\"name\":\"Morgan Patou\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"headline\":\"Documentum &#8211; RED Warning on D2 after enabling Tomcat HTTP Security Headers\",\"datePublished\":\"2022-07-31T09:34:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/\"},\"wordCount\":1078,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/07\\\/Tomcat_Red_Warning-1024x481.png\",\"keywords\":[\"AzureAD\",\"D2\",\"Documentum\",\"SAML2\",\"Security\",\"SSO\",\"Tomcat\"],\"articleSection\":[\"Application integration &amp; Middleware\",\"Enterprise content management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/\",\"name\":\"Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/07\\\/Tomcat_Red_Warning-1024x481.png\",\"datePublished\":\"2022-07-31T09:34:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/07\\\/Tomcat_Red_Warning.png\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/07\\\/Tomcat_Red_Warning.png\",\"width\":1346,\"height\":632},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentum &#8211; RED Warning on D2 after enabling Tomcat HTTP Security Headers\"}]},{\"@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\\\/c4d05b25843a9bc2ab20415dae6bd2d8\",\"name\":\"Morgan Patou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"caption\":\"Morgan Patou\"},\"description\":\"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\\\/Banking, and the Pharmaceutical industry.\",\"sameAs\":[\"https:\\\/\\\/blog.dbi-services.com\\\/author\\\/morgan-patou\\\/\",\"https:\\\/\\\/x.com\\\/MorganPatou\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/morgan-patou\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers - 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\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/","og_locale":"en_US","og_type":"article","og_title":"Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers","og_description":"Security is and will always be a very important aspect of IT. Enterprise Content Management (or Document Management Systems or Content Services Platform or whateveryoucallit) is obviously not an exception to that. One of our main goals as a consultant is to add improvements to our customers&#8217; installations for stability, security, and ease of management. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/","og_site_name":"dbi Blog","article_published_time":"2022-07-31T09:34:00+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png","type":"","width":"","height":""}],"author":"Morgan Patou","twitter_card":"summary_large_image","twitter_creator":"@MorganPatou","twitter_misc":{"Written by":"Morgan Patou","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/"},"author":{"name":"Morgan Patou","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"headline":"Documentum &#8211; RED Warning on D2 after enabling Tomcat HTTP Security Headers","datePublished":"2022-07-31T09:34:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/"},"wordCount":1078,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png","keywords":["AzureAD","D2","Documentum","SAML2","Security","SSO","Tomcat"],"articleSection":["Application integration &amp; Middleware","Enterprise content management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/","url":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/","name":"Documentum - RED Warning on D2 after enabling Tomcat HTTP Security Headers - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning-1024x481.png","datePublished":"2022-07-31T09:34:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/07\/Tomcat_Red_Warning.png","width":1346,"height":632},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-red-warning-on-d2-after-enabling-tomcat-http-security-headers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Documentum &#8211; RED Warning on D2 after enabling Tomcat HTTP Security Headers"}]},{"@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\/c4d05b25843a9bc2ab20415dae6bd2d8","name":"Morgan Patou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","caption":"Morgan Patou"},"description":"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\/Banking, and the Pharmaceutical industry.","sameAs":["https:\/\/blog.dbi-services.com\/author\/morgan-patou\/","https:\/\/x.com\/MorganPatou"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/morgan-patou\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18196","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\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=18196"}],"version-history":[{"count":5,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18196\/revisions"}],"predecessor-version":[{"id":18590,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/18196\/revisions\/18590"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=18196"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=18196"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=18196"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=18196"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}