Questions concernant le tuto de Bertrand Nguimgo
Je suis le tutoriel : Apprendre à développer les services REST avec Spring Boot et Spring RestTemplate https://bnguimgo.developpez.com/tuto...-resttemplate/ et j'ai du mal à comprendre certaines choses.
1. Pourquoi la Classe UserDto se trouve dans la partie serveur et client à la fois:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| package com.bnguimgo.springbootrestclient.dto;
import java.io.Serializable;
import org.hibernate.validator.constraints.NotEmpty;
public class UserDto implements Serializable{
private static final long serialVersionUID = 3046638822810400597L;
@NotEmpty(message = "Entrez votre login")
private String login;
@NotEmpty(message = "Entrez un mot de passe")
private String password;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//Formatage d'un objet en String
@Override
public String toString() {
return String.format("[login=%s, password=%s]", login, password);
}
} |
2. J'aimerai savoir à quoi servent les 2 derniers paramètres User.class et variables concernant cette ligne:
Code:
ResponseEntity<User> userExists = restTemplate.getForEntity(configurationService.getUrl() +"user/users/{loginName}", User.class, variables);
3. Le formulaire contenu dans la page loginForm.jsp contient aussi un champ password. Or c'est seulement le login qui est géré lors de la tentative de connexion:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| @PostMapping(value = "/login")
public ModelAndView login(@Valid @ModelAttribute("userForm") UserDto userForm,
BindingResult bindingResult, ModelAndView modelAndView) {
modelAndView.setViewName("loginForm");
if (bindingResult.hasErrors()) {
return modelAndView;
}
Map<String, String> variables = new HashMap<String, String>(1);
variables.put("loginName", userForm.getLogin());
ResponseEntity<User> userExists = restTemplate.getForEntity(configurationService.getUrl() +"user/users/{loginName}", User.class, variables);
User user = userExists.getBody();
if (user == null) {//ceci nous évite d'écrire une page de gestion des erreurs
modelAndView.addObject("saveError", "Aucun utilisateur trouvé avec ce compte");
return modelAndView;
}
modelAndView.setViewName("loginSuccess");
return modelAndView;
} |
Y a t-il un autre endroit où le password est géré?
4. A quoi sert le (1) à la fin de cette ligne:
Code:
Map<String, String> variables = new HashMap<String, String>(1);
Merci