2013-09-24 19 views
5

Wdrażam uwierzytelnianie spnego sso na instalacji systemu Linux tomcat 7.0 i podążając za przykładem: http://spnego.sourceforge.net/index.html dość dobrze. Przesłałem listę kontrolną przed lotem i sprawdziłem, czy działa z biletem "BASIC" w Firefoksie, który jest przekazywany tam iz powrotem.Problem implementacji spnego - przetwarzanie błędów nagłówek żądania http

Jednak podczas korzystania z „Negocjuj” nagłówek Authorization Dostaję następujący komunikat o błędzie w catalina.out:

INFO: Error parsing HTTP request header 

Dzieje się tak zarówno z IE i podczas symulacji żądania w SoapUI. Odpowiedź odesłana do obu jest:

400 Bad Request 

Jak powiedziałem, to działa w Firefoksie, ale tylko częściowo w tym, że prosi o login tam wpływy z uwierzytelnianiem „Basic”. (Przynajmniej nie jest aż go wyłączyć w configs filtracyjnych web.xml, więc znam te configs są odczytywane)

Używam następujące enctypes:

default_tkt_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5 
default_tgs_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5 
permitted_enctypes = aes256-cts-hmac-sha1-96 aes128-cts des3-cbc-sha1 des-cbc-md5 des-cbc-crc arcfour-hmac-md5 

Podejrzewam, że ma coś zrobić z szyfrowaniem 256, ale nie pobrać i umieścić je w moim folderze java lib/security nieograniczonego słoiki szyfrowania, jak opisano poniżej:

http://docs.oracle.com/javase/7/docs/technotes/guides/security/jgss/jgss-features.html 

jednak, że nie rozwiąże problemu (chyba, że ​​jest coś tam mnie brakuje). Obszernie przeszukałem błąd http "Błąd parsowania ...", który pojawia się w pliku catalina.out, ale nie znalazłem rozwiązania. Inne ustawienia (dziedzina, domena itd.) Działają dobrze, ponieważ je zmodyfikowałem i otrzymałem inne, bardziej szczegółowe błędy.

Jakieś pomysły dotyczące błędu INFO: Error parsing HTTP request header?

To jest wewnętrzne środowisko korporacyjne, a logowanie jednokrotne zostało już z powodzeniem zaimplementowane za pomocą protokołu httpd, ale chcielibyśmy odejść od tego rozwiązania w pełni tomcat.

Odpowiedz

11

W końcu rozwiązano ten problem. Okazuje się, że nagłówek autoryzacji "Negocjuj" przesuwał rozmiar nagłówka ponad domyślny rozmiar maksymalny 8kb w Tomcat, co spowodowało błąd wprowadzający w błąd. (Myślę, że bardziej przydatnym komunikatem o błędzie będzie coś w rodzaju "osiągniętego maksymalnego rozmiaru nagłówka").

W każdym razie, znalazłem rozwiązanie, które będzie opisane w następującej odpowiedzi na serverfault.

https://serverfault.com/questions/56691/whats-the-maximum-url-length-in-tomcat

A dla kompletności:

<Connector port="8080" maxHttpHeaderSize="65536" protocol="HTTP/1.1" ... />