Wie erhält man ein Session Objekt in der ContainerRequest um die Annotation @RolesAllowed (Role_user) zu verwenden?

8

Ich erstelle eine App mithilfe von App Engine mit Jersey. Ich möchte die Annotation @RolesAllowed(Role_user) verwenden, die es erlaubt, einen Filter in der Anfrage zu erstellen.

Das Problem ist, dass wir die Klasse SecurityContextFilter konfigurieren müssen.

Mein Ziel ist es, die id des Benutzers in einer Sitzung gespeichert zu bekommen, um dann ihre Rolle direkt im function : public ContainerRequest filter(ContainerRequest request) meiner Klasse SecurityContextFilter zu überprüfen.

Ich muss HttpRequest injizieren, um die Sitzung zu bekommen, aber wenn ich es injiziere, bekomme ich eine Ausnahme Java.lang.Null .

Ich möchte ein Session-Objekt in der Klasse ContainerRequest bekommen.

Wie kann ich das tun?

BEARBEITEN:

Ich habe eine Lösung für dieses Problem gefunden, aber ich weiß nicht, ob das sauber ist: Sie können die HttpRequest direkt in die Funktion injizieren: isUserInRole (_role) Also benutze ich das und ich bekomme meine userId von der Sitzung, dann bekomme ich die Rolle user und ich überprüfe, ob diese mit _role übereinstimmt und true oder false zurückgibt.

    
FlavienBert 09.08.2013, 23:36
quelle

1 Antwort

1

Ich bin mir ziemlich nicht sicher, ob du% HttpServletRequest über ContainerRequestFilter in Jersey einfügen kannst, aber du kannst es immer noch programmatisch machen, anstatt Annotationen zu verwenden:

%Vor%

BR.

    
tmarwen 01.02.2014 12:09
quelle