nicht erhalten Ich implementiere die Autorisierung für JSP-Seite mit HttpHandler und HttpFilter und unserem firmeninternen Autorisierungsdienst. Die Logik lautet also: Wenn ich HttpRequest erhalte und ein Benutzer im Header ist, sende ich eine Anfrage an unseren Dienst, um Zugriffsrollen für diesen Benutzer zu erhalten. Dann möchte ich diese Rolle als Attribut HttpSession hinzufügen. Ich implementierte diese Logik in HttpHandler, die AbstractHandler von Jetty-Server erweitert. Daher wurden die Rollen erfolgreich zum Sitzungsobjekt hinzugefügt. Dann geht Request zu Filter. In meinem Filter versuche ich diese Werte aus der Sitzung zu bekommen, aber kein Glück. Ich überprüfte den String-Hash-Wert der Sitzung überall ist gleich, aber in Handler kann ich Wert als ein Attribut sehen, in Filter gibt es überhaupt kein Attribut. Dann habe ich überprüft, dass hashCode() in Handler und in Filter verschiedene Werte für Session-Objekte zurückgibt, selbst wenn sie denselben Hash-Sitzungswert haben.HttpSession Attribut
Können Sie etwas vorschlagen, um herauszufinden, warum Sitzungsidentifikator die gleichen, aber Objekte sind unterschiedlich und es gibt keinen Wert von Attribut in Filter. Diese
ist, wie ich Wert auf die Sitzung in Griffmethode Handler hinzufügen:
httpServletRequest.getSession(true).setAttribute(ACCESS_ROLES, StringUtils.join(getEntitlementAuthorities(user), ENTITLEMENT_ROLES_DIVIDER));
Dies ist, wie ich versuche, Daten in Filter zurück zu bekommen:
Object attributesObject = httpRequest.getSession().getAttribute(ACCESS_ROLES);
Haben Sie Ihre Jetty Sicherheit in [Konfigurieren der Sicherheit] wie beschrieben betrachtet Integration (http://www.eclipse.org/jetty/documentation/9.2.10.v20150310/ configuring-security-authentication.html)? –