我使用SpringBoot和SpringSecurity作为我的web应用程序的身份验证。我有一个控制器,它将authenticationrequest(pojo)参数作为@requestbody
通过以json格式传递用户名和密码来调用端点/从 Postman 处进行身份验证,但当我打印值(用户名和密码)时,我只能看到密码被打印出来。多次尝试后,无法找到用户名未填充的原因。
@RequestMapping(value="/authenticate",method=RequestMethod.POST)
public ResponseEntity<?> createAuthenticationToken(@RequestBody AuthenticationRequest authenticationRequest) throws Exception{
System.out.println("authenticationRequest.getUserName()"+authenticationRequest.getUserName());
System.out.println("authenticationRequest.getPassword()"+authenticationRequest.getPassword());
authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(authenticationRequest.getUserName(), authenticationRequest.getPassword()));
}
波乔班
public class AuthenticationRequest {
private String username;
private String password;
public AuthenticationRequest(){
}
public AuthenticationRequest(String username, String password) {
super();
this.username = username;
this.password = password;
}
public String getUserName() {
return username;
}
public void setUserName(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
json(原始){“用户名”:“用户”,“密码”:“通过”}
安慰
authenticationRequest.getUserName()null
authenticationRequest.getPassword()pass
1条答案
按热度按时间lnxxn5zx1#
问题在于您的getter和setter:
字母n应该很小,因为json包含
username
与小n。试着这样做: