UsernamePasswordToken 에서 password를 사용하지 않은 이유

이진욱·2025년 1월 2일

이론

목록 보기
23/24

로그인 했을 때에는 UsernamePasswordToken에서는 password를 사용하였으나, 토큰 조회 시에는 UsernamePasswordToken에서 password를 사용하지 않았습니다.

  • 로그인 시 UsernamePasswordToken을 사용하여 사용자 인증을 할 때, 비밀번호를 포함시켜 AuthenticationManager에 인증을 요청합니다. 이때 비밀번호는 중요한 인증 정보로 사용됩니다.

  • 하지만 토큰 조회 시, 일반적으로 UsernamePasswordToken에서 비밀번호를 사용할 필요가 없습니다.

  • 토큰 조회의 목적은 주로 이미 인증된 상태에서 인증된 사용자에 대한 정보를 가져오는 것이므로, 이미 인증된 정보는 Authentication 객체세션에서 관리되기 때문입니다. 이 경우, 비밀번호는 더 이상 필요하지 않으며, 인증된 사용자의 principal만을 조회하면 됩니다.

  • 예를 들어, 이미 로그인하여 세션이나 토큰에 저장된 사용자 정보만을 이용해 인증 상태를 확인하고 토큰을 조회할 수 있습니다. 인증된 상태에서 UsernamePasswordToken을 사용한다고 하더라도, 비밀번호는 중요하지 않게 됩니다.

예시 코드:

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null) {
    // 인증된 사용자의 정보
    String username = authentication.getName();
    // 다른 사용자 정보 처리
}
  • 이 코드에서는 인증된 사용자 정보를 세션이나 인증 컨텍스트에서 가져오므로 비밀번호를 확인할 필요가 없습니다.
profile
열심히 하는 신입 개발자

0개의 댓글