我有这个控制器:
@PostMapping("/login")
@Transactional
public ResponseEntity<?> login(@Valid @ModelAttribute("login") LoginDTO dto, Model model) {
Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(dto.getUsername(), dto.getPassword()));
SecurityContextHolder.getContext().setAuthentication(authentication);
User user = (User) authentication.getPrincipal();
RefreshToken refreshToken = new RefreshToken();
refreshToken.setOwner(user);
refreshTokenRepository.save(refreshToken);
model.addAttribute("login", dto);
String accessToken = jwtHelper.generateAccessToken(user);
String refreshTokenString = jwtHelper.generateRefreshToken(user, refreshToken);
return ResponseEntity.ok(new TokenDTO(user.getId(), accessToken, refreshTokenString));
}
如您所见,这里有ResponseEntity
,我不能将html
设置为返回类型。我试图将返回类型更改为String
,然后返回index.html
,但我的安全性无法正常工作。谁已经有这种情况了,为什么我可以在这里返回html
页面?所以这只是login
控制器,在用户提交后,如果成功,我想将他重定向到另一个页面。
1条答案
按热度按时间czfnxgou1#
我认为你应该直接发送重定向响应来重定向它。