Ich habe eine Controller-Methode, die die POST-Anfrage für ein Reset-Passwort-Formular behandelt. Das Formular enthält ein verborgenes Eingabefeld für das Zurücksetztoken und fordert den Benutzer zur Eingabe eines neuen Kennworts auf.Hibernate @Validator mit Spring Boot
Ich möchte die @Valid
Annotation in meinem Code unten verwenden, aber nicht sicher, ob ich meine vorhandene User
Klasse verwenden kann.
Muss der Hibernate-Validator eine zusätzliche Klasse speziell für das Formular erstellen? Verfahren
-Controller
@RequestMapping(value = "/resetPassword", method = RequestMethod.POST)
public ModelAndView setNewPassword(@RequestParam Map<String,String> requestParams) {
User user = userService.findUserByResetToken(requestParams.get("token"));
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("message", "Form data is " + requestParams.get("token") + requestParams.get("password") + user.getEmail());
modelAndView.setViewName("resetPassword");
return modelAndView;
}
Benutzerklasse
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private int id;
@Column(name = "email")
@Email(message = "Please provide a valid e-mail")
@NotEmpty(message = "Please provide an e-mail")
private String email;
@Column(name = "password")
@Size(min = 8, max = 72, message = "Your password must be between 8 and 72 characters long")
@NotEmpty(message = "Please provide a password")
@Transient
private String password;
@Column(name = "first_name")
@NotEmpty(message = "Please provide your first name")
private String firstName;
@Column(name = "last_name")
@NotEmpty(message = "Please provide your last name")
private String lastName;
@Column(name = "enabled")
private boolean enabled;
@Column(name = "confirmation_token")
private String confirmationToken;
@Column(name = "created_on")
private Date createdOn;
@Column(name = "last_login")
private Date lastLogin;
@Column(name = "reset_token")
private String resetToken;
// Getters and setters omitted
}
Was möchten Sie bestätigen? 'Token' &' Passwort' von Anfrage? –
@bureaquete ja –
Warum nicht '@ RequestBody' verwenden und direkt' User' in Ihrer Controller-Methode verwenden? Dann können Sie '@ Valid' Annotation hinzufügen, da das Formular im Wesentlichen' User' Klasse richtig ist? Obwohl die Feldnamen 'token' und' reset_token' unterschiedlich sind. –