분류 전체보기 (308) 썸네일형 리스트형 QueryDsl fetchResult Deprecate 상황 queryDsl에서 지원했는 fetchResults와 fetchCount가 deprecate된다고 한다. 그렇기에 이전에 지원했는 fetchResults에서 제공하는 count 쿼리를 직접 작성해서 크기를 구해야 한다. deprecate 되기 이전 버전 코드 public class MemberRepositoryImpl implements MemberRepositoryCustom{ private final JPAQueryFactory queryFactory; public MemberRepositoryImpl(JPAQueryFactory queryFactory) { this.queryFactory = queryFactory; } @Override public Page searchPageSimple(Me.. 백준 2812 크게 만들기 (파이썬) https://www.acmicpc.net/problem/2812 2812번: 크게 만들기 N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 숫자를 지웠을때 만들수있는 수 가운데 가장 큰 수를 만들어야 하는 문제이다. 이 문제는 그리디 문제로 일종의 규칙을 발견하는 것이 중요하다. 입력 예제로 주어진 값들을 직접 지우다 보면 다음과 같은 규칙들을 발견할 수 있다. 순서 예제 입력1 예제 입력2 예제 입력3 1 1924 1231234 4177252841 2 924 231234 477252841 3 94 31234 77252841 3234 7752841 775841 값을 지우다 보면 idx의 값과 idx+1의 .. 스프링 시큐리티 기본 API 및 Filter 이해 - 사이트 간 요청 위조 - CSRF, CsrfFilter 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. CSRF(사이트 간 요청 위조) CSRFFilter 사용자가 공격자의 공격용 웹페이지에 접속하고 쇼핑몰을 공격할수 있는 스크립트가 담긴 img태그를 누르면 쇼핑몰은 자기가 인증한 사용자가 보낸 요청으로 인식하고 공격을 허용해주는 것 스프링 시큐리티 기본 API 및 Filter 이해 - 권한설정과 표현식 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. 권한 설정 추가 스프링 시큐리티 5.4버전이후 코드이다. 유저를 추가하는 코드는 다음과 같다. 이때 password에 {noop}이라고 되어 있는것은 비밀번호를 암화화해서 처리하겠다는 의미이다. @Bean public UserDetailsManager userDetailsManager() { UserDetails user = User.builder() .username("user") .password("{noop}1111") .roles("USER") .build(); UserDetails sys = User.builder() .username("sys") .passwor.. 스프링 시큐리티 기본 API 및 Filter 이해 - 세션 제어 필터 : SessionManagementFilter, ConcurrentSessionFilter 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. SessionManagementFilter SessionManagementFilter는 다음과 같은 기능을 한다. 세션 관리 인증시 사용자의 세션정보를 등록, 조회, 삭제 등의 세션 이력을 관리 동시적 세션 제어 동일 계정으로 접속이 허용되는 최대 세션수를 제한 세션 고정 보호 인증 할 때마다 세션쿠키를 새로 발급하여 공격자의 쿠키 조작을 방지 세션 생성 정책 Always, If_Required, Never, Stateless ConcurrentSessionFilter 매 요청 마다 현재 사용자의 세션 만료 여부 체크 세션이 만료로 설정되었을 경우 즉시 만료 처리 sess.. 스프링 시큐리티 기본 API 및 Filter 이해 - 동시 세션 제어, 세션 고정 보호, 세션 정책 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. 동시 세션 제어 동시 세션 제어는 서버에서 한명의 사용자가 가질수 있는 세션의 개수를 제어하는 것을 말한다. 즉 서로 다른 브라우저 다른 pc에서 동일한 사용자로 접속하지 못하게 막는것이다. 그리고 스프링 시큐리티에서는 위와 같이 최대 세션 개수 초과시 아래와 같이 세션의 동시성을 제어한다. 이전 사용자 세션를 만료 시키거나 현재 사용자 인증 실패 이때 invalidSessionUrl과 expiredUrl이 둘다 설정 되어 있을경우 invalidSessionUrl의 경로가 우선시 된다. 세션 고정 공격/보호 고정 세션 공격이 이루어지는 흐름을 설명하면 다음과 같다. 공격자.. 스프링 시큐리티 기본 API 및 Filter 이해 - 익명사용자 인증 필터 : AnonymousAuthenticationFilter 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. 익명사용자를 사용하는 이유는 간략하게 말하자면 스프링 시큐리티는 인증받지 않은 사용자도 특수한 목적을 위해 사용된다. 인증객체(익명객체)를 세션에는 저장하지 않지만 Security context에는 저장한다. https://www.inflearn.com/questions/92183/익명사용자를-왜-사용하는지-모르겠습니다 스프링 시큐리티 기본 API 및 Filter 이해 - Remember Me 인증 필터 : RememberMeAuthenticationFilter 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. RememberMeAuthenticationFilter는 RememberMe 쿠키 관련된 필터로 사용자의 인증정보가 없을때 수행된다. 즉 사용자의 인증정보가 security context에 없을때 수행된다는 말이다. (사용자의 인증정보가 없다는 말은 세션이 만료되어 사용자의 정보를 찾을 수 없는 말이다.) 또한 TokenBasedRememberMeService는 인 메모리 방식으로 메모리에 토큰 정보를 저장하고 복원하여 돌려주는 방식이고 PersistentTokenBasedRememberMeServices는 DB에 저장하고 필요시 인증정보를 복원하여 돌려주는 방식이다. T.. 스프링 시큐리티 기본 API 및 Filter 이해 - Remember Me 인증 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. 세션과 리멤버미 토큰은 모두 HTTP 쿠키를 이용하여 사용자 로그인 정보를 유지하지만, 그 사용 목적과 지속 기간에 차이가 있다. 세션: 세션은 사용자가 로그인하면 일정 시간 동안 로그인 정보를 유지하기 위한 목적으로 사용됩니다. 특정 기간 동안 사용자가 애플리케이션을 이용하는 동안 지속되는데, 세션 만료 시 사용자는 다시 로그인해야 합니다. 또한, 브라우저를 닫으면 세션은 일반적으로 종료되며 로그아웃 처리됩니다. 리멤버미 토큰: 리멤버미 토큰의 목적은 사용자가 몇 일 동안 애플리케이션에 접속하더라도 로그인이 유지되도록 만드는 것입니다. 세션과 달리 리멤버미 토큰은 긴 유.. 스프링 시큐리티 기본 API 및 Filter 이해 - Logout 처리, LogoutFilter 스프링 시큐리티 기본 API 및 Filter 이해 - Logout 처리, LogoutFilter 인프런 정수원님의 “스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security"를 보고 작성한 글입니다. http // 로그아웃 설정 .logout(logout -> logout // 로그아웃 요청을 처리할 URL 설정 .logoutUrl("/logout") // 로그아웃 성공 시 리다이렉트할 URL 설정 .logoutSuccessUrl("/login") // 로그아웃 핸들러 추가 (세션 무효화 처리) .addLogoutHandler((request, response, authentication) -> { HttpSession session = request.getSession().. 이전 1 ··· 11 12 13 14 15 16 17 ··· 31 다음