Ich habe versucht, Login-Seite mit Feder Sicherheit zu erstellen. Ich brauche eine Art von Login. Und die URL für den Login muss gleich sein. Für examleSpring MVC der richtige Weg, rufen Sie verschiedene Methoden durch einen Link
Ich öffne Haupt-Login-Seite - localhost:8080/login
Dann Eingang ich einige Informationen und drücken Sie die Taste „next“
bewege ich mich zu localhost:8080/default/login
Auf dieser Seite habe ich zwei Arten von Login - von ip, per SMS, von etc. Und wenn ich Taste drücken "ip" ich muss sehen url - localhost:8080/default/login
aber in Controller-Methode loginByIp();
Und wenn ich Taste "per SMS" muss ich sehen url - localhost:8080/default/login
aber in Controller-Methode aufrufen loginBySms();
I-Lösung
@RequestMapping(value = "/default/login", params = "sms", method = RequestMethod.POST)
public ModelAndView sms(@RequestParam String msisdn) {
//login by sms
}
und
@RequestMapping(value = "/default/login", params = "ip", method = RequestMethod.POST)
public ModelAndView ip(@RequestParam String msisdn) {
//login by ip
}
gefunden Und in Form auf der Seite erstelle ich versteckte param
<input class="form-control" name="type" value="ip" type="hidden"/>
oder
<input class="form-control" name="type" value="sms" type="hidden"/>
Und in jeder Form nenne ich
<form action="/default/login" method="post">
Es funktioniert. Aber ich denke es ist schlechte Übung oder vielleicht gibt es einfachere oder korrekte Seite.
ist der Standard Weg. und natürliches Recht. aber meine Aufgabe ist es, den gleichen Link zu zeigen – user5620472
@Matyas Ich stimme zu, einzelne Verantwortung Grundsatz, verschiedene Aktionen, differents Endpunkte – cralfaro
** "Zeige den gleichen Link" ** - Was meinst du damit? Die Browser-URL der Seite kann dieselbe sein, es ist nur die "Aktion" des Formulars, die anders wäre, die für den Benutzer nicht sichtbar ist.Außerdem können Sie nach einer erfolgreichen Anmeldung in beiden Fällen auf die gleiche Seite umleiten. – Matyas