전체 글 (103) 썸네일형 리스트형 Union-Find Union-Find서로소 집합 (Disjoint-Set)을 표현할 때 사용하는 그래프 알고리즘집합을 트리 구조로 표현하여 임의의 두 노드(원소)가 서로 같은 그래프(집합)에 속하는지 판별 Disjoint-Set공통 원소가 없는 "상호 배타적인" 부분집합들로 나눠진 원소들에 대한 정보를 표현하는 자료구조 Unoin 연산과 Find 연산으로 이루어짐Union : 두 원소가 속한 집합을 하나로 합침Find : 해당 원소가 속한 집합(루트 원소)을 반환 Union-Find 사용 예시특정 두 개체가 같은 그룹에 속하는지 효율적으로 판별하기 위해 사용됨네트워크 연결 여부 판별여러 개의 컴퓨터가 서로 연결될 떄, 특정 두 컴퓨터가 같은 네트워크에 속해 있는지 확인최소 신장 트리 (MST) - 크루스칼 알고리즘최소 .. 요청 캐시 RequestCache / SavedRequest 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! RequestCache인증 절차 문제로 로그인 페이지로 리다이렉트된 후, 이전에 했던 요청 정보를 담고 있는 'SavedRequest' 객체를 쿠키 혹은 세션에 저장하고 필요시 다시 가져와 실행하는 캐시 메커니즘RequestCache는 인터페이스, 이를 구현한 객체는 HttpSessionRequestCache SavedRequestSavedRequest는 로그인과 같은 인증 절차 후 사용자를 인증 이전의 원래 페이지로 안내함이전 요청과 관련된 여러 정보를 저장SavedRequest는 인터페이스, 이를 구현한 객체는 DefaultSavedRequestredirectUrl : 이전 요청 url 흐름도 client↓ Get /u.. 로그 아웃 - logout() 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! 로그아웃스프링 시큐리티는 기본적으로 DefaultLogoutPageGeneratingFilter를 통해 로그아웃 페이지를 제공하며 "GET /logout" URL로 접근이 가능함 → 로그아웃 버튼 클릭을 통해 "POST /logout"로그아웃 실행은 기본적으로 "POST /logout"으로만 가능CSRF 기능을 비활성화 or RequestMatcher를 사용 ≫ GET, PUT, DELETE 모두 가능로그아웃 필터를 거치지 않고 스프링 MVC에서 커스텀하게 구현할 수 있음로그인 페이지가 커스텀하게 생성될 경우 로그아웃 기능도 커스텀하게 구현해야 함 logout() APIlogoutUrl : 로그아웃이 발생하는 URL 지정기.. 익명 인증 사용자 - anonymous() 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! 익명 사용자스프링 시큐리티에서 "익명으로 인증된" 사용자는 "인증되지 않은" 사용자와 동일액세스 제어 속성을 더 편리하게 구성하기 위해 인증되지 않은 사용자도 하나의 객체로 만듦인증되지 않은 사용자도 하나의 Authentication 객체가 되어 SecurityContextHolder는 항상 Authentication 객체를 포함하고 null을 포함하지 않는다 !인증 사용자와 익명 인증 사용자를 구분하여 어떤 기능을 수행하고자 할 때 유용익명 인증 사용자의 권한을 별도로 운용할 수 있음 ≫ 인증된 사용자가 접근할 수 없도록 구성이 가능함인증 사용자) Authentication을 SecurityContext에 저장 → Securi.. 기억하기 인증 필터 - RememberMeAuthenticationFilter 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! RememberMeAuthenticationFilterSecurityContextHolder에 Authentication이 포함되지 않은 경우 실행되는 필터포함되어 있다면 인증된 상태이므로 인증 처리 필요가 없음세션이 만료되었거나 애플리케이션 종료로 인해 인증 상태가 소멸된 경우 → 토큰 기반 인증을 사용해 유효성을 검사하고 토큰이 검증되면 자동 로그인 처리를 수행토큰을 생성하고 쿠키에 담아 보내는 역할이 아님 ! → 이건 폼인증 필터에서 RememberMeServices를 통해 처리인증 상태가 소멸된 경우 재인증 진행하여 자동로그인을 처리하는 역할 흐름도 client↓ Get /user↓RememberMeAuthentica.. 기억하기 인증 - rememberMe() 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! RememberMe 인증사용자가 웹 사이트나 애플리케이션에 로그인할 때 자동으로 인증 정보를 기억하는 기능UsernamePasswordAuthenticationFilter와 함께 사용됨폼인증 / httpBasic 인증 등 인증 방식의 인터페이스에 포함됨 → 인증 과정 내부에서 호출됨!인증 성공 시 RememberMeServices.loginSuccess() ≫ RememberMe 토큰을 생성하고 쿠키로 전달인증 실패 시 RememberMeServices.loginFail() ≫ 쿠키를 지움 (보안을 위해 기존 저장되어 있던 쿠키도 삭제)LogoutFilter와 연계하여 로그아웃 시 쿠키를 지움 토큰 생성기본적으로 암호화된 토큰으.. 기본 인증 필터 - BasicAuthenticationFilter 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! BasicAuthenticationFilter기본 인증 서비스 제공BasicAuthenticationConverter를 사용하여 요청 헤더에 기술된 인증 정보의 유효성을 체크하고 Base64 인코딩된 username과 password를 추출유효성 체크 : 요청 헤더에 Authentication: Basic [인코딩값] 이 있는지 확인유효성 검사 성공시 인코딩값을 통해 username, password 추출하여 UsernamePasswordAuthenticationToken에 저장기본인증의 경우 일반적으로 세션을 사용하지 않음세션을 사용하는 경우 : 인증 과정에서 세션에 인증정보 저장, 매 요청마다 인증 과정을 거치지 않음세션을 .. 기본 인증 - httpBasic() 정수원님의 **스프링 시큐리티 완전 정복** 강의 내용 기록입니다 !! HTTP Basic 인증HTTP는 엑세스 제어와 인증을 위한 프레임워크를 제공, 가장 일반적인 인증 방식은 "Basic" 인증 방식인증 프로토콜은 HTTP 인증 헤더에 기술되어 있음 Client↓ GET /home인증되지 않은 상태)서버 → 클라이언트401 UnauthorizedWWW-Authenticate: Basic realm="localhost"서버는 클라이언트에게 인증 요구를 보냄401 Unauthorized 응답WWW-Authenticate 헤더 ≫ realm(보안영역)과 Basic 인증 방법 포함↓username, password 입력 후 다시 요청클라이언트 → 서버GET /homeAuthorization.. 이전 1 2 3 4 ··· 13 다음 목록 더보기