{"id":6644,"date":"2020-03-24T15:04:50","date_gmt":"2020-03-24T13:04:50","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=6644"},"modified":"2020-03-24T15:04:52","modified_gmt":"2020-03-24T13:04:52","slug":"http-400-bad-request-fehler-in-connections-6-cr-6-mit-spnego-beheben","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/http-400-bad-request-fehler-in-connections-6-cr-6-mit-spnego-beheben\/","title":{"rendered":"HTTP 400 Bad Request Fehler in Connections 6 CR 6 mit SPNEGO beheben"},"content":{"rendered":"<p>400 Bad Request Fehler bei einem Teil der Connections-Nutzer, teilweise im Browser, aber bei manchen auch dem Desktop-Connector: Dies war in einer Connections 6 CR 6 Umgebung festzustellen, nachdem der IBM HTTP Server von Windows auf Linux migriert wurde. In diesem Zuge fand auch ein Re-Factoring statt, darunter die Automatisierung mittels Ansible.  Dass der Fehler nicht bei allen Nutzern auftrat, erschwerte die  Fehlersuche. Ebenso schien es nicht m\u00f6glich, das Problem mit  Testbenutzern zu reproduzieren. <\/p>\n<h2 class=\"wp-block-heading\">SPNEGO Headergr\u00f6\u00dfe<\/h2>\n<p>Wie sich herausstellte, wurde das Problem durch <strong>SPNEGO <\/strong>verursacht. Dies kam zum Einsatz, um Single-Sign-On f\u00fcr die Benutzer bereitzustellen. SPNEGO setzt Header von bis zu 12392 bytes Gr\u00f6\u00dfe. Diese \u00fcberschreitet den Standardwert von 8k, der sowohl von Apache2 als auch dem darauf basierten IHS zum Einsatz kommt. <\/p>\n<p>Doch warum betraf das Problem dann nicht alle Benutzer? Nun, SPNEGO setzt dort auch die Mitgliedsgruppen des Benutzers. In je mehr (langen) Gruppen der Benutzer Mitglied ist, um so l\u00e4nger wird somit auch der Header. Einzelne Personen \u00fcberschreiten somit das Limit, wogegen es bei anderen noch ausreicht.<\/p>\n<h2 class=\"wp-block-heading\">Header vergr\u00f6\u00dfern<\/h2>\n<p>Der 400 Bad Request Fehler l\u00e4sst sich mit einer einzigen Konfigurationszeile l\u00f6sen. Hierzu wird das Limit auf 16k erh\u00f6ht (12k mit etwas Puffer):<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"\" data-line=\"\">LimitRequestFieldSize 16376<\/code><\/pre>\n<p>Sie muss in der <strong>httpd.conf<\/strong> eingef\u00fcgt werden. Diese befindet sich standardm\u00e4\u00dfig im Pfad <strong>\/opt\/IBM\/HTTPServer\/conf<\/strong>. Nach einem Neustart greifen die \u00c4nderungen, sodass sich die 400 Fehler im Accesslog reduzieren sollten. Um dies live zu beobachten, gen\u00fcgt  ein Grep auf die jeweilige Logdatei. Wird Logrotate genutzt, beispielsweise wie folgt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">tail -f logs\/access_2020_03_24.log | grep &quot; 400 &quot;<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>400 Bad Request Fehler bei einem Teil der Connections-Nutzer, teilweise im Browser, aber bei manchen auch dem Desktop-Connector: Dies war in einer Connections 6 CR 6 Umgebung festzustellen, nachdem der IBM HTTP Server von Windows auf Linux migriert wurde. In diesem Zuge fand auch ein Re-Factoring statt, darunter die Automatisierung mittels Ansible. Dass der Fehler &#8230;<\/p>\n","protected":false},"author":5,"featured_media":6645,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[765,5],"tags":[718,760,795],"class_list":["post-6644","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hcl-connections","category-news","tag-apache","tag-hcl-connections","tag-ihs"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6644","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=6644"}],"version-history":[{"count":2,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6644\/revisions"}],"predecessor-version":[{"id":6647,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6644\/revisions\/6647"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/6645"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=6644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=6644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=6644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}