분류 전체보기
-
[JAVA] JAVA8 스트림 Max&Min 사용 방법자바/자바8 2020. 9. 17. 11:39
이번 시간에는 Stream API를 이용해서 주어진 collection에서 max & min 값을 찾아내는 방법에 대해서 알아보도록 하겠습니다. Integer 리스트에서 Max 값 찾기 @Test public void testFindMaxValueInIntegerList() throws Exception { // given Integer expectedResult = 70; List listOfIntegers = Array.asList(4, 9, 1, 10, 48, 70); // when Integer max = listOfIntegers .stream() // 리스트 객체에서 스트림을 얻어오는 함수 .mapToInt(v -> v) // Integer 스트림을 얻어오는 함수 .max() // max 값을..
-
[GIT] 로컬 브랜치 전환, 삭제 및 원격 저장소에 있는 브랜치 가져오기관리 배포/git 2020. 9. 15. 22:47
브랜치 전환하기 특정 브랜치로 전환하기 위해서 사용되는 명령어는 checkout이다. 다음과 같이 checkout 명령어 뒤에 사용할 브랜치 이름을 입력한다. $ git checkout 하지만 현재 브랜치에 merge 되지 않은 엔트리가 존재하거나 conflict가 난 상태에서 다른 브랜치로 checkout하기 위해서는 아래와 같이 -f 옵션을 사용한다. $ git checkout -f master 로컬 브랜치 삭제 특정 브랜치를 삭제하려면 branch 명령에 -d 옵션을 지정하여 실행하면 된다. $ git branch -d 하지만 삭제 하려는 브랜치가 머지가 안된 상태라면 브랜치 삭제에 실패한다. 머지되지 않은 브랜치를 삭제하려면 명령어에 -D (대문자) 옵션을 지정하여 실행하면 머지되어 있지 않더라도..
-
[스프링 스큐리티] 인증 여부 검증(AuthenticationManager)강의노트/스프링 시큐리티 2020. 9. 14. 22:22
AuthenticationManager AuthenticationProvider 목록 중에서 인증 처리 요건에 맞는 AuthenticationProvider를 찾아 인증 처리를 위임한다. 부모 ProviderManager를 설정하여 AuthenticationProvider를 계속 탐색 할 수 있다. AuthenticationManager에 해당 요청을 처리할 AuthenticationProvider가 없는 경우 부모 AuthenticationManager에서 적합한 AuthenticationProvider를 탐색해서 처리한다. Form 인증 DaoAuthenticationProvider RememberMe 인증 RememberMeAuthenticationProvider Oauth 인증 Oauth 인증을 ..
-
[스프링 시큐리티] Authentication Flow강의노트/스프링 시큐리티 2020. 9. 14. 20:57
AuthenticationManager (ProviderManager) 사용할 수 있는 AuthenticationProvider 리스트를 멤버 변수로 가지고 있다. AuthenticationProvider 리스트에서 현재 인증에 적합한 AuthenticationProvider를 찾아서 인증을 위임한다. AuthenticationProvider (DaoAuthenticationProvider) UserDetailsService에 username을 매개변수로 전달하여 UserDetails 정보를 조회한다. UserDetailsService를 통해서 조회한 User가 존재하는 경우, 해당 User객체의 패스워드와 클라이언트에서 전달 한 패스워드를 일치하는지 검증한다. 패스워드가 일치하지 않으면 BadCrede..
-
[스프링 시큐리티] SecurityContext 객체 생성, 저장, 조회(SecurityContextPersistenceFilter)강의노트/스프링 시큐리티 2020. 9. 14. 20:11
SecurityContextPersistenceFilter SecurityContext 객체를 생성, 저장, 조회한다. Filter 리스트 중 2번째 위치한다. 인증 성공 후 Session에 저장하는 역활을 한다. Save SecurityContext HttpSecurityContextRepository 실질적으로 SecurityContext를 생성, 저장, 조회하는 클래스 동작 시나리오 익명 사용자가 접근 할 경우 새로운 SecurityContext 객체를 생성하여 SecurityContextHolder에 저장한다. AnonymousAuthenticationFilter에서 AnonymousAuthenticationToken 객체를 SecurityContext에 저장한다. 인증 사용자가 접근 할 경우 새..
-
[스프링 시큐리티] Authentication 객체 저장소(SecurityContext, SecurityContextHolder)강의노트/스프링 시큐리티 2020. 9. 14. 18:37
SecurityContext Authentication 객체가 저장되는 보관소로 필요 시 언제든지 Authentication 객체를 꺼내 쓸 수 있도록 제공되는 클래스 Authentication 객체 안에는 User 객체가 저장되어 있다. ThreadLocal에 저장되어 아무곳에서나 참조가 가능하다. ThreadLocal? Thread마다 고유하게 할당되는 저장소 인증이 완료되면 HttpSession에 저장되어 어플리케이션 전반에 걸쳐 전역적인 참조가 가능하다. SecurityContextHolder SecurityContext 객체를 감싸고 있는 클래스이다. SecurityContext 객체 저장 방식 MODE_THREADLOCAL : 스레드당 SecurityContext 객체를 할당 (default)..
-
[스프링 시큐리티] 인증 정보 저장 객체(Authentication)강의노트/스프링 시큐리티 2020. 9. 14. 18:14
인증 클라이언트가 자신이 주장하는 사용자와 같은 사용자인지를 확인하는 과정이다. 인증 시 id와 password를 담고 인증 검증을 위해 전달되어 사용된다. 인증 후 최종 인증 결과를 Authentication객체(User객체, 권한 정보)에 담고 SecurityContext에 저장되어 전역적으로 참조가 가능해진다. Authentication authentication = SecurityContextHolder.getContext().getAuthentication() 구조 principal : 사용자 아이디 또는 User 객체 credentials : 사용자 비밀번호 authorities : 인증된 사용자의 권한 목록 details : 사용자의 인증 정보 외에 부가 정보 Authenticated : 인..
-
[스프링 시큐리티] 필터 초기화와 다중 보안 설정강의노트/스프링 시큐리티 2020. 9. 14. 12:38
다중 설정 클래스 설정 클래스 별로 보안 기능이 각각 작동한다. 설정 클래스 별로 RequestMatcher를 설정한다. 설정 클래스 별로 필터가 생성된다. 다중 설정 클래스를 설정 할 경우 @Order 어노테이션을 통해서 어떤 보안 기능을 체크할지 설정해주어야 한다. (index 0부터 시작) Filter들과 RequestMatcher를 가진 SecurityFilterChain 객체가 각각의 보안 설정에 따라 생성되어진다. 각각의 생성된 SecurityFilterChain 객체들은 FilterChainProxy 빈에서 SecurityFilterChains 리스트 멤버 변수로 관리된다. 요청 처리 과정 요청이 들어오면 FilterChainProxy에서는 SecurityFilterChains 리스트에 있는..