提问人:강찬욱 提问时间:10/13/2023 更新时间:10/16/2023 访问量:34
java.lang.NullPointerException:身份验证时为 null [重复]
java.lang.NullPointerException: null at authenticate [duplicate]
问:
我有关于Spring Security的Qeustion。
我即将使用 RequestBoby“User”请求“/auth/login”。
和这个控制器
@RestController
@RequestMapping("/auth")
@RequiredArgsConstructor
public class AuthController {
private AuthService authService;
@PostMapping("/login")
public ResponseEntity<User> authenticate(@RequestBody User user) {
return ResponseEntity.ok(authService.authenticate(user)); // line 24
}
}
但是 NullPointerException 是这样的。
java.lang.NullPointerException: null
at com.*.demo.controller.AuthController.authenticate(AuthController.java:24) ~[main/:na]
我认为 Request 是正确的,因为我还会检查用户是否通过 ToString 接收了 RequestBody
User(id=null, [email protected], password=1234, name=null)
服务代码在这里。
@Service
@RequiredArgsConstructor
public class AuthService {
private final AuthenticationManager authenticationManager;
public User authenticate(User user) {
authenticationManager
.authenticate(new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword()));
return user;
}
}
我已经完成了 PasswordEncoder、UserDetailsService、AuthenticationProvider 和 AuthenticationManager 的设置。 并将这些设置应用于 SecurityFilterChain。 我试图修复错误几个小时,但失败了。如果你需要,我会发送一个代码。
谢谢。
我尝试更改所有配置文件。
答:
0赞
1615903
#1
private AuthService authService
不是,因此不是必需的参数,因此不是龙目岛生成的构造函数的一部分。由于它不是从构造函数分配的,因此它保持为 null。final
评论
private AuthService authService
不是,因此不是必需的参数,因此不是龙目岛生成的构造函数的一部分。由于它不是从构造函数分配的,因此它保持为 null。final