인증 논리를 담당하는 부분은 AuthenticationProvider 이다. AuthenticationManager는 HTTP 요청을 수신하고 AuthenticationProvider에게 인증 책임을 위임한다. 이 단원에서는 인증 결과가 두 가지인 인증 프로세스를 살펴본다.요청하는 엔티티가 인증되지 않는다애플리케이션이 사용자를 인식하지 못해 권한 부여 프로세스에 위임하지 않고 요청을 거부한다. 일반적으로 이 경우 클라이언트에 HTTP 401 Unauthorized 응답이 반환된다.요청하는 엔티티가 인증된다요청자의 UserDetails 가 SecurityContext에 저장되어 애플리케이션이 이를 권한 부여에 이용할 수 있다.AuthenticationProvider의 이해어떠한 시나리오가 주어지더라도 구현..
Java
PasswordEncoder 인터페이스 이해일반적으로 시스템은 암호를 그대로 저장하지 않고 해시를 사용해 저장한다. PasswordEncoder는 암호를 인코딩하고 인증 프로세스에서 암호가 유효한지 확인한다.upgradeEncoding 메서드는 false를 반환하도록 기본 구현이 되어 있는데 이를 true 를 반환하도록 재정의하면 인코딩된 암호를 보안 향상을 위해 다시 인코딩한다. 상황에 따라 재정의해서 사용할 수 있다.encode 와 matches 메서드는 기능적으로 밀접한 관계가 있어 이 둘을 재정의하려면 기능 면에서 항상 일치해야 한다. PasswordEncoder 로 인코딩된 암호가 주어진 암호와 같은지 PasswordEncoder로 확인할 수 있어야 한다.제공된 구현 선택스프링 시큐리티에서 이미..
먼저 요청이 들어오면 필터가 요청을 가로채고 인증 책임이 AuthenticationManager로 위임된다. 인증 논리 구현하는 AuthenticationProvider를 이용하는데 이 때 UserDetailsService에서 사용자를 찾고 PasswordEncoder 로 암호를 검증한다. 모든 인증이 끝나면 SecurityContext에 UserDetails가 저장된다.사용자 관리는 UserDetailsManager와 UserDetailsService를 사용한다. UserDetailsService 는 사용자 이름으로 사용자를 찾는 역할만 하고 UserDetailsManager 는 사용자의 삭제, 추가, 수정 작업을 수행한다.사용자는 애플리케이션 내에서 수행할 수 있는 작업을 나타내는 이용 권리의 집합을..
int[] arr = {5,1,3,4,2};// 오름차순 정렬Arrays.sort(arr);위와 같이 정수형 배열을 오름차순으로 정렬하려면 Arrays.sort메소드를 사용하면 된다. 특정 구간을 정렬하려고 하면 Arrays.sort(arr, 시작, 끝)을 통해 구간을 오름차순으로 정렬할 수 있다. 내림차순으로 정렬하고 싶다면 어떻게 해야할까?매개변수가 없는 sort 자체는 오름차순 정렬밖에 지원하지 않는다. 그럼 매개변수에 비교기준을 반대로 넣으면 되지 않을까?Arrays.sort((num1,num2)-> num2 - num1);와 같이 말이다. 하지만, 이는 불가능한데 sort메서드가 Comparator 함수형 인터페이스를 매개변수로 사용하고 있기 때문이다. Comparator 인터페이스는 객체간의 ..