Olá Bruno,
Para realizar a autenticação via requisição, você pode utilizar o Basic Authentication. Nesse caso, você precisa enviar o header Authorization com o valor Basic seguido do usuário e senha em Base64.
Segue um exemplo de como ficaria o código:
@RestController
public class LoginController {
@Autowired
private AuthenticationManager authenticationManager;
@Autowired
private JwtTokenUtil jwtTokenUtil;
@PostMapping("/login")
public ResponseEntity<?> login(@RequestBody LoginDTO loginDTO) throws AuthenticationException {
final Authentication authentication = authenticationManager.authenticate(
new UsernamePasswordAuthenticationToken(
loginDTO.getUsername(),
loginDTO.getPassword()
)
);
SecurityContextHolder.getContext().setAuthentication(authentication);
final String token = jwtTokenUtil.generateToken(authentication);
return ResponseEntity.ok(new JwtResponse(token));
}
@GetMapping("/hello")
public ResponseEntity<?> hello() {
return ResponseEntity.ok("Hello World!");
}
}
Para testar a autenticação, você pode enviar uma requisição POST para a URL /login com o seguinte header:
Authorization: Basic base64(username:password)
Substitua "username" e "password" pelo usuário e senha desejados em formato de texto simples.
Espero ter ajudado e bons estudos!