/ / Korrekte Verwendung der @ Security.Authenticated (Secured.class) -Anweisung in Play FrameWork - Java, http, Sitzung, Playframework

Korrekte Verwendung der @ Security.Authenticated (Secured.class) -Anweisung in Play FrameWork - Java, http, Sitzung, Playframework

Hi Ich habe Probleme zu verstehen, wie man richtig benutzt @ Security.Authenticated (Secured.class) Anweisung innerhalb des PlayFrameWork.

Ich versuche sicherzustellen, dass nur authentifizierte Benutzer auf ihre Konten zugreifen können. Nach dem Beispiel in der Spielen Sie Dokumente scheint es, dass ihre Authentifizierung es einem einzelnen Benutzer ermöglicht, auf jedes Benutzerkonto zuzugreifen, sobald es eingeloggt ist - und nicht nur das eigene.

Normalerweise hätte ich angenommen, dass man einfach den Sitzungswert innerhalb der Aktion sagt,

    public static Result viewAccount(String account) {
//get session value and check against account name
}

Die Dokumente verwenden jedoch eine andere Route: Sie definieren eine Klasse

    public class Secured extends Security.Authenticator {
@Override
public String getUsername(Context ctx) {
return ctx.session().get("username");
}

@Override
public Result onUnauthorized(Context ctx) {
return redirect(routes.Application.login());
}
}

Anscheinend jetzt einfach mit der Aussage: @ Security.Authenticated (Secured.class) bevor eine Aktion sicherstellt, dass sie authentifiziert ist. Aber nach meinem Verständnis und Testen blockiert dies nicht, dass sich Benutzer bei Anyones-Konto anmelden, wenn es passiert, einfach wenn der Session-Wert existiert - und nicht, wenn es übereinstimmt. Wie behebe ich das?

Soll ich nur direkt den Sitzungswert vergleichen? Was ist der Zweck dann? @ Security.Authenticated (Secured.class)?

Vielen Dank (Bearbeiten) um klarzustellen: Ich möchte zulassen, dass Benutzer nur berechtigt sind, ihre eigenen Konten und nicht andere zu sehen.
Also wenn die Aussage

    @Security.Authenticated(Secured.class)

verwendet wird, möchte ich, dass es nicht nur nach dem Vorhandensein einer Sitzungs-ID sucht, sondern auch, ob es mit einem Konto übereinstimmt

Antworten:

2 für die Antwort № 1

Vielleicht verstehe ich deine Frage nicht, aber in der Dokumentation Sie sehen, wie Sie ein Anmeldeformular erstellen und tatsächlichFühren Sie die Authentifizierung durch. Erst danach ist der E-Mail-Sitzungswert vorhanden. Wenn dieser Wert in der Sitzung vorhanden ist, muss sich der Benutzer mit den richtigen Anmeldeinformationen angemeldet haben und authentifiziert worden sein.

Wenn Benutzer A die Anmeldeinformationen von Benutzer B kennt, kann natürlich nichts helfen.

Wenn Sie sich stattdessen Sorgen machen GenehmigungWenn Sie entscheiden, wer was bei der Authentifizierung sehen kann, können Sie viele Dinge tun, einschließlich der Unterstützung der OAuth-Unterstützung im eigentlichen Play oder eines Plugins dieses.