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.
Tags und Links java jersey google-app-engine servlet-filters