簡體   English   中英

ResponseEntity方法登錄成功返回HTML頁面

[英]Returning HTML page after success login with ResponseEntity method

我有這個 controller 允許用戶登錄到我的網站。

@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));

}

我正在嘗試創建重定向,因此在用戶成功登錄后將他重定向到索引頁面。

如您所見,我將其作為 return return ResponseEntity.ok(new TokenDTO(user.getId(), accessToken, refreshTokenString));

當我將其更改為:

    HttpHeaders headers = new HttpHeaders();
    headers.add("Location", "/api/auth/index");
    return new ResponseEntity<String>(headers, HttpStatus.FOUND);

用戶已成功重定向到右側 API 但我仍然進入控制台dtssecurity.AccessTokenEntryPoint:unauthorized

org.springframework.security.authentication.InsufficientAuthenticationException: Full 
authentication is required to access this resource

但是當我回到這個

    return ResponseEntity.ok(new TokenDTO(user.getId(), accessToken, 
    refreshTokenString));

用戶輸入正確的憑據后,一切都很好,我在控制台中沒有錯誤的憑據或其他東西,所以一切正常,除了我不能做的關於重定向的部分

添加.httpBasic(); 最后在你的配置文件中檢查它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM