{"id":13936,"date":"2020-04-18T07:57:42","date_gmt":"2020-04-18T05:57:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/"},"modified":"2020-04-18T07:57:42","modified_gmt":"2020-04-18T05:57:42","slug":"documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/","title":{"rendered":"Documentum &#8211; DA fail to load if accessed after D2 because of ESAPI"},"content":{"rendered":"<p>In some specific cases, you might have faced an issue where Documentum Administrator is loading properly but then suddenly it&#8217;s not working anymore and all you did in between was accessing D2. I don&#8217;t remember seeing that before DA 16.x but maybe it&#8217;s just my memory that is playing me tricks! When this happen, you will see the usual pop-up on Documentum Administrator asking you to refresh\/reload your screen but without any details of what&#8217;s wrong.<\/p>\n<p>&nbsp;<\/p>\n<p>Fortunately, the logs of Documentum Administrator are more useful since it will print something like that (it&#8217;s an old log but the same still apply with the latest DA Patches as well):<\/p>\n<pre class=\"brush: java; gutter: true; first-line: 1\">2019-05-18 11:40:12,680 UTC  WARN [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] IntrusionDetector - [SECURITY FAILURE Anonymous:null@unknown -&gt; \/webtop\/IntrusionDetector] Invalid input: context=HTTP cookie name: XSS: WebformTag, type(HTTPCookieName)=^[a-zA-Z0-9-_]{1,50}$, input=https%3A%2F%2Fweblogic_server_01.domain.com%3A8085%2FD2%2Fx3_portal%2Ftheme\norg.owasp.esapi.errors.ValidationException: HTTP cookie name: XSS: WebformTag: Invalid input. Please conform to regex ^[a-zA-Z0-9-_]{1,50}$ with a maximum length of 1024\n        at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:144)\n        at org.owasp.esapi.reference.validation.StringValidationRule.checkWhitelist(StringValidationRule.java:160)\n        at org.owasp.esapi.reference.validation.StringValidationRule.getValid(StringValidationRule.java:284)\n        at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:214)\n        at org.owasp.esapi.reference.DefaultValidator.getValidInput(DefaultValidator.java:185)\n        at com.documentum.web.security.validators.WDKESAPIValidator.getValidCookieName(WDKESAPIValidator.java:136)\n        at com.documentum.web.form.WebformTag.getJsessionidCookieName(WebformTag.java:401)\n        at com.documentum.web.form.WebformTag.renderExtnJavaScript(WebformTag.java:326)\n        at com.documentum.web.form.WebformTag.doStartTag(WebformTag.java:175)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jsp__tag2(__errormessage.java:466)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jsp__tag1(__errormessage.java:431)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jspService(__errormessage.java:152)\n        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)\n        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)\n        at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:489)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:376)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247)\n        at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:630)\n        at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:502)\n        at com.documentum.web.form.FormProcessor.dispatchURL(FormProcessor.java:2283)\n        at com.documentum.web.formext.component.URLDispatchBridge.dispatch(URLDispatchBridge.java:108)\n        at com.documentum.web.formext.component.ComponentDispatcher.mapRequestToComponent(ComponentDispatcher.java:505)\n        at com.documentum.web.formext.component.ComponentDispatcher.doGet(ComponentDispatcher.java:354)\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)\n        at com.documentum.web.formext.component.ComponentDispatcher.doService(ComponentDispatcher.java:328)\n        at com.documentum.web.formext.component.ComponentDispatcher.serviceAsNonController(ComponentDispatcher.java:166)\n        at com.documentum.web.formext.component.ComponentDispatcher.service(ComponentDispatcher.java:147)\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)\n        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)\n        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.servlet.ResponseHeaderControlFilter.doFilter(ResponseHeaderControlFilter.java:351)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.servlet.CompressionFilter.doFilter(CompressionFilter.java:96)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.env.WDKController.processRequest(WDKController.java:239)\n        at com.documentum.web.env.WDKController.doFilter(WDKController.java:184)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3706)\n        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3672)\n        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328)\n        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)\n        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)\n        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)\n        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)\n        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)\n        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)\n        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1705)\n        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1665)\n        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)\n        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)\n        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)\n        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)\n        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)\n        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652)\n        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)\n        at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)\n2019-05-18 11:40:12,681 UTC ERROR [[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'] com.documentum.web.common.Trace - Encountered error in error message component jsp\ncom.documentum.web.security.exceptions.SecurityWrapperRuntimeException: HTTP cookie name: XSS: WebformTag: Invalid input. Please conform to regex ^[a-zA-Z0-9-_]{1,50}$ with a maximum length of 1024\n        at com.documentum.web.security.validators.WDKESAPIValidator.getValidCookieName(WDKESAPIValidator.java:141)\n        at com.documentum.web.form.WebformTag.getJsessionidCookieName(WebformTag.java:401)\n        at com.documentum.web.form.WebformTag.renderExtnJavaScript(WebformTag.java:326)\n        at com.documentum.web.form.WebformTag.doStartTag(WebformTag.java:175)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jsp__tag2(__errormessage.java:466)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jsp__tag1(__errormessage.java:431)\n        at jsp_servlet._wdk._system._errormessage.__errormessage._jspService(__errormessage.java:152)\n        at weblogic.servlet.jsp.JspBase.service(JspBase.java:35)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)\n        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)\n        at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:489)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:376)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:247)\n        at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:630)\n        at weblogic.servlet.internal.RequestDispatcherImpl.include(RequestDispatcherImpl.java:502)\n        at com.documentum.web.form.FormProcessor.dispatchURL(FormProcessor.java:2283)\n        at com.documentum.web.formext.component.URLDispatchBridge.dispatch(URLDispatchBridge.java:108)\n        at com.documentum.web.formext.component.ComponentDispatcher.mapRequestToComponent(ComponentDispatcher.java:505)\n        at com.documentum.web.formext.component.ComponentDispatcher.doGet(ComponentDispatcher.java:354)\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)\n        at com.documentum.web.formext.component.ComponentDispatcher.doService(ComponentDispatcher.java:328)\n        at com.documentum.web.formext.component.ComponentDispatcher.serviceAsNonController(ComponentDispatcher.java:166)\n        at com.documentum.web.formext.component.ComponentDispatcher.service(ComponentDispatcher.java:147)\n        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)\n        at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)\n        at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)\n        at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)\n        at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.servlet.ResponseHeaderControlFilter.doFilter(ResponseHeaderControlFilter.java:351)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.servlet.CompressionFilter.doFilter(CompressionFilter.java:96)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at com.documentum.web.env.WDKController.processRequest(WDKController.java:239)\n        at com.documentum.web.env.WDKController.doFilter(WDKController.java:184)\n        at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)\n        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3706)\n        at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3672)\n        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328)\n        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)\n        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)\n        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)\n        at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2443)\n        at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2291)\n        at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2269)\n        at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1705)\n        at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1665)\n        at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)\n        at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)\n        at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)\n        at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)\n        at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)\n        at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:652)\n        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)\n        at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)<\/pre>\n<p>&nbsp;<\/p>\n<p>So what&#8217;s that? Well the logs are pretty much self-explanatory but in short, the issue is a mismatch on the ESAPI layer. For several years, Documentum applications (DA, D2, D2-Config, D2-Rest, aso&#8230;) are all using the OWASP Enterprise Security API (aka ESAPI). This is an open source library that can be used to apply\/enforce security controls on Web Applications. As you can see above, the issue in this case is there is a Cookie Name that doesn&#8217;t match the expected regex (regular expression) defined in the ESAPI.properties file of Documentum Administrator:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [4]\">[weblogic@weblogic_server_01 ~]$ cd $APPLICATIONS\n[weblogic@weblogic_server_01 apps]$ \n[weblogic@weblogic_server_01 apps]$ grep \"CookieName\" da\/WEB-INF\/classes\/ESAPI.properties\nValidator.HTTPCookieName=^[a-zA-Z0-9\\-_]{1,50}$\n[weblogic@weblogic_server_01 apps]$<\/pre>\n<p>&nbsp;<\/p>\n<p>When accessing DA in a new\/clean browser window (<em>E.g.:<\/em> in private mode), then DA will setup its own stuff and you will have the following cookies:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">Cookie: appname=da;\n        wdk_sess_cookie_0=eJwFGztVFUQJkM4lg1NzQysNTQzBJlpYZuCrQEA00NLck1hcxTMoNnKMLI0TexNUwNjMTG39asqdHK0CCs3Lg3NcXXNyC\/1Cq4odTHKdAq1tMhyjHdN8vTc1xTK0MD1DUNTS1NcvdSzRDUDAnrIeYA..;\n        JSESSIONID_da=Nxs2AYuOOuD2iBZqBA8Vw3UuuUlEjA_EbESx98AthouJ-elAeyWP!-1595571209<\/pre>\n<p>&nbsp;<\/p>\n<p>Then if you access any application like D2-Config, D2-REST, D2-Smartview or a WebLogic Admin Console for example, then each of these application will add their own cookies but usually cookies are removed when you leave the application because not needed anymore, except for the session ones (JSESSIONID). So, after accessing D2-Config and back to DA, then you should see something like that:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">Cookie: appname=da;\n        wdk_sess_cookie_0=eJwFGztVFUQJkM4lg1NzQysNTQzBJlpYZuCrQEA00NLck1hcxTMoNnKMLI0TexNUwNjMTG39asqdHK0CCs3Lg3NcXXNyC\/1Cq4odTHKdAq1tMhyjHdN8vTc1xTK0MD1DUNTS1NcvdSzRDUDAnrIeYA..;\n        JSESSIONID_da=Nxs2AYuOOuD2iBZqBA8Vw3UuuUlEjA_EbESx98AthouJ-elAeyWP!-1595571209;\n        JSESSIONID_D2Config=RR5rnoSBFAAHOR342UkkiRV2GtCqZ9TyYbwrsDTD9K058yON4SAj!491149461<\/pre>\n<p>&nbsp;<\/p>\n<p>Going back to DA after that doesn&#8217;t show any issue because the application specific cookies aren&#8217;t there anymore. The problem is only for D2. The reason is that D2 uses internally the Sencha GXT and a specific cookie is setup by that toolkit. This cookie isn&#8217;t removed when you leave the application and therefore, since the name of this cookie doesn&#8217;t follow the restriction of the DA ESAPI, then DA isn&#8217;t working anymore. Loading D2 and DA afterwards will result in the following cookies:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [6]\">Cookie: appname=da;\n        wdk_sess_cookie_0=eJwFGztVFUQJkM4lg1NzQysNTQzBJlpYZuCrQEA00NLck1hcxTMoNnKMLI0TexNUwNjMTG39asqdHK0CCs3Lg3NcXXNyC\/1Cq4odTHKdAq1tMhyjHdN8vTc1xTK0MD1DUNTS1NcvdSzRDUDAnrIeYA..;\n        JSESSIONID_da=Nxs2AYuOOuD2iBZqBA8Vw3UuuUlEjA_EbESx98AthouJ-elAeyWP!-1595571209;\n        JSESSIONID_D2Config=RR5rnoSBFAAHOR342UkkiRV2GtCqZ9TyYbwrsDTD9K058yON4SAj!491149461\n        JSESSIONID_D2=SxeOGoLdAWHtfOhs2D6g-525FcVyUQJFIqUfsJJx5Au6-yjFop3P!78206796;\n        https%3A%2F%2Fweblogic_server_01.domain.com%3A8085%2FD2%2Fx3_portal%2Ftheme=%7B%22state%22%3A%7B%22id%22%3A%22s%3Aslate%22%2C%20%22file%22%3A%22s%3Aresources%2Fthemes%2Fslate%2Fcss%2Fxtheme-x3.css%22%7D%7D<\/pre>\n<p>&nbsp;<\/p>\n<p>You can see above the same cookie name as in the DA logs: &#8220;<em>https%3A%2F%2Fweblogic_server_01.domain.com%3A8085%2FD2%2Fx3_portal%2Ftheme<\/em>&#8220;. That&#8217;s a strange name for a cookie (it&#8217;s the encoded URL of the D2 theme) but that&#8217;s how it&#8230; Because this cookie isn&#8217;t removed when you leave D2 and because DA restrict the length and allowed characters in the name of cookies, then you have this issue. A few months ago, we opened the OpenText <em>SR#4366426<\/em> to ask whether they could fix that but the feedback we got so far is that no it&#8217;s not possible because it&#8217;s coming from the Sencha GXT and they have apparently no control over that. Therefore, the only solution I can see would be to update the ESAPI regex to allow this cookie. It&#8217;s not really a good idea to update the ESAPI regex, unfortunately, I don&#8217;t see another solution\/workaround&#8230; Here is an example on how it could potentially be done:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [2,4,7]\">[weblogic@weblogic_server_01 apps]$ grep \"CookieName\" da\/WEB-INF\/classes\/ESAPI.properties\nValidator.HTTPCookieName=^[a-zA-Z0-9\\-_]{1,50}$\n[weblogic@weblogic_server_01 apps]$ \n[weblogic@weblogic_server_01 apps]$ sed -i 's,^Validator.HTTPCookieName=^.*$,Validator.HTTPCookieName=^[a-zA-Z0-9%._:\\\\\/\\\\-]{1,100}$,' da\/WEB-INF\/classes\/ESAPI.properties\n[weblogic@weblogic_server_01 apps]$ \n[weblogic@weblogic_server_01 apps]$ grep \"CookieName\" da\/WEB-INF\/classes\/ESAPI.properties\nValidator.HTTPCookieName=^[a-zA-Z0-9%._:\\\/\\-]{1,100}$\n[weblogic@weblogic_server_01 apps]$<\/pre>\n<p>&nbsp;<\/p>\n<p>Basically what I added above is to allow the additional characters that are part of the CookieName\/URL (%, ., : and \/) and I also allowed more chars because by default it&#8217;s only 50 but the URL is longer. With this new definition, redeploy\/update DA and the issue should be gone.<\/p>\n<p>&nbsp;<\/p>\n<p>What I still don&#8217;t understand is why I can&#8217;t see the same issue for D2 itself or with an older version of DA (7.3 for example)&#8230; Both D2 and DA uses the ESAPI but I can only see DA 16.x fail, older versions as well as D2 are both working fine without error while their regex is even more strict: &#8220;<em>^[a-zA-Z0-9\\-_]{1,32}$<\/em>&#8220;. This is the same pattern as for DA 16.x but it limits to 32 chars max, which is even less. There must have been a bug in earlier versions that prevented this property from actually doing anything. It might have been a change on the ESAPI layer as well but I assume both DA and D2 ESAPI are in sync? I guess I will try to do some research on that.<\/p>\n<p>&nbsp;<\/p>\n<p>Normally the issue shouldn&#8217;t happen anymore on the 20.4 release because D2 will force the Sencha GXT to use web storage instead of cookies. This will also be applied on the next patches of earlier D2 versions normally (E.g.: 16.5.1 P06, planned for end of April 2020).<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In some specific cases, you might have faced an issue where Documentum Administrator is loading properly but then suddenly it&#8217;s not working anymore and all you did in between was accessing D2. I don&#8217;t remember seeing that before DA 16.x but maybe it&#8217;s just my memory that is playing me tricks! When this happen, you [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,525],"tags":[1621,1900,1901,898,443,869,129,1902],"type_dbi":[],"class_list":["post-13936","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","category-enterprise-content-management","tag-16-4","tag-16-7","tag-20-4","tag-administrator","tag-d2","tag-da","tag-documentum","tag-esapi"],"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>Documentum - DA fail to load if accessed after D2 because of ESAPI - 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-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documentum - DA fail to load if accessed after D2 because of ESAPI\" \/>\n<meta property=\"og:description\" content=\"In some specific cases, you might have faced an issue where Documentum Administrator is loading properly but then suddenly it&#8217;s not working anymore and all you did in between was accessing D2. I don&#8217;t remember seeing that before DA 16.x but maybe it&#8217;s just my memory that is playing me tricks! When this happen, you [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-04-18T05:57:42+00:00\" \/>\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=\"11 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-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\"},\"author\":{\"name\":\"Morgan Patou\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"headline\":\"Documentum &#8211; DA fail to load if accessed after D2 because of ESAPI\",\"datePublished\":\"2020-04-18T05:57:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\"},\"wordCount\":817,\"commentCount\":0,\"keywords\":[\"16.4\",\"16.7\",\"20.4\",\"administrator\",\"D2\",\"DA\",\"Documentum\",\"ESAPI\"],\"articleSection\":[\"Application integration &amp; Middleware\",\"Enterprise content management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\",\"name\":\"Documentum - DA fail to load if accessed after D2 because of ESAPI - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2020-04-18T05:57:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentum &#8211; DA fail to load if accessed after D2 because of ESAPI\"}]},{\"@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 - DA fail to load if accessed after D2 because of ESAPI - 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-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/","og_locale":"en_US","og_type":"article","og_title":"Documentum - DA fail to load if accessed after D2 because of ESAPI","og_description":"In some specific cases, you might have faced an issue where Documentum Administrator is loading properly but then suddenly it&#8217;s not working anymore and all you did in between was accessing D2. I don&#8217;t remember seeing that before DA 16.x but maybe it&#8217;s just my memory that is playing me tricks! When this happen, you [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/","og_site_name":"dbi Blog","article_published_time":"2020-04-18T05:57:42+00:00","author":"Morgan Patou","twitter_card":"summary_large_image","twitter_creator":"@MorganPatou","twitter_misc":{"Written by":"Morgan Patou","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/"},"author":{"name":"Morgan Patou","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"headline":"Documentum &#8211; DA fail to load if accessed after D2 because of ESAPI","datePublished":"2020-04-18T05:57:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/"},"wordCount":817,"commentCount":0,"keywords":["16.4","16.7","20.4","administrator","D2","DA","Documentum","ESAPI"],"articleSection":["Application integration &amp; Middleware","Enterprise content management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/","url":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/","name":"Documentum - DA fail to load if accessed after D2 because of ESAPI - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2020-04-18T05:57:42+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-da-fail-to-load-if-accessed-after-d2-because-of-esapi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Documentum &#8211; DA fail to load if accessed after D2 because of ESAPI"}]},{"@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\/13936","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=13936"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13936\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13936"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=13936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}