Java/Spring
-
SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
Spring Security SessionManagementFilter, ConcurrentSessionFilter(동시세션제어)SessionManagementFilter세션 관리를 위한 필터로 Spring Security 에서 4가지 기능을 지원한다. 세션관리 : 인증 후 사용자의 세션 관리(등록, 조회, 삭제)동시 세션 제어 : 동일 계정에 대한 세션 관리세션 고정 보호 : 인증 후 세션 쿠키를 재발급하여 세션 쿠키 조작 공격을 방지세션 생성 정책 : Always, If_Required, Never, Stateless 여기서 동시세션제어는 ConcurrentSessionFilter 가 담당한다. ConcurrentSessionFilterConCurrentSessionFilter 는 SessionRegistry 를 이용하여 사용자의 로그인 동시세션 제어를 한다.사용자 요청이 들어올 때마다 매번 세션이 만료(expired) 되었..
2024.09.06 -
Mybatis 를 사용하여 List 데이터를 Insert 하는 방법이다. 데이터는 아래와 같이 List 형 Map 을 사용했다.[ {role_id=O0100, right_name=기관관리자, site_code=101}, {role_id=S9900, right_name=시스템관리자, site_code=101}, {role_id=M0100, right_name=통합운영관리자, site_code=101}] SELECT MAX(right_seq)+1 FROM m_right INSERT INTO m_right(right_seq, right_name, right_desc, site_code, role_id) VALUES ( ..
Mybatis foreach, selectkey, Auto Increment 구현Mybatis 를 사용하여 List 데이터를 Insert 하는 방법이다. 데이터는 아래와 같이 List 형 Map 을 사용했다.[ {role_id=O0100, right_name=기관관리자, site_code=101}, {role_id=S9900, right_name=시스템관리자, site_code=101}, {role_id=M0100, right_name=통합운영관리자, site_code=101}] SELECT MAX(right_seq)+1 FROM m_right INSERT INTO m_right(right_seq, right_name, right_desc, site_code, role_id) VALUES ( ..
2024.09.02 -
Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
Spring Security Filter 등록 및 실행 순서Spring Security 6 의 내용을 보다가 문득 Security Filter Chain 의 Filter 실행 순서가 궁금하여 찾아봤다. 참고 사이트(docs.spring.io)https://docs.spring.io/spring-security/reference/servlet/architecture.html#servlet-security-filters FilterOrderRegistration.javahttps://github.com/spring-projects/spring-security/blob/6.3.3/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration...
2024.08.30 -
Spring 에서 프로퍼티 파일에 있는 설정값들을 불러오기 위해선 다양한 방법이 존재하지만대표적인 방식이 @Value 와 @ConfigurationProperties 어노테이션이다. @Value@ConfigurationProperties주입 형식단일값 주입N개 주입(여러개 주입 가능)RelaxedBindingXO @ConfigurationProperties 어노테이션은 RelaxedBinding 이 적용되므로 보다 유연하게 값을 바인딩할 수 있다.RelaxedBinding 이란 값이 정확히 일치하지 않아도 유연하게 값을 바인딩 할 수 있게 인식한다.대표적으로 Camel Case 와 Snake Case 로 설정된 설정값들을 동일한 설정으로 이해하며, 우선순위에 따라1개의 값으로 설정한다. @Value..
@Value, @ConfigurationProperties 어노테이션Spring 에서 프로퍼티 파일에 있는 설정값들을 불러오기 위해선 다양한 방법이 존재하지만대표적인 방식이 @Value 와 @ConfigurationProperties 어노테이션이다. @Value@ConfigurationProperties주입 형식단일값 주입N개 주입(여러개 주입 가능)RelaxedBindingXO @ConfigurationProperties 어노테이션은 RelaxedBinding 이 적용되므로 보다 유연하게 값을 바인딩할 수 있다.RelaxedBinding 이란 값이 정확히 일치하지 않아도 유연하게 값을 바인딩 할 수 있게 인식한다.대표적으로 Camel Case 와 Snake Case 로 설정된 설정값들을 동일한 설정으로 이해하며, 우선순위에 따라1개의 값으로 설정한다. @Value..
2024.07.18 -
Spring Security 의 Filter 들은 Spring Container 에서 Spring Bean 으로 등록되어 있다.하지만 Filter 들은 Servlet Container 에서 동작하는걸로 알고 있지만Spring Container 와 Servlet Container 는 영역 자체가 다르기 때문에 어떻게 실행되는지 궁금해서정리하게 됐다. 위 이미지처럼 Servlet Container 와 Spring Container 는 영역 자체가 다르며, Filter 는 서블릿이 제공하는 기술이다.Spring Bean 으로 등록되어 있는 Filter 들은 DelegatingFilterProxy 라는 클래스를 통해Spring Bean Filter 들을 실행시킨다. DelegatingFilterProxy ..
Spring Security Filter ChainSpring Security 의 Filter 들은 Spring Container 에서 Spring Bean 으로 등록되어 있다.하지만 Filter 들은 Servlet Container 에서 동작하는걸로 알고 있지만Spring Container 와 Servlet Container 는 영역 자체가 다르기 때문에 어떻게 실행되는지 궁금해서정리하게 됐다. 위 이미지처럼 Servlet Container 와 Spring Container 는 영역 자체가 다르며, Filter 는 서블릿이 제공하는 기술이다.Spring Bean 으로 등록되어 있는 Filter 들은 DelegatingFilterProxy 라는 클래스를 통해Spring Bean Filter 들을 실행시킨다. DelegatingFilterProxy ..
2024.06.17 -
Array(배열) 과 ArrayList 의 차이가 궁금해져 정리하게 되었다. Array(배열)ArrayList사이즈초기화 할때 명시하여 고정시킨다.String[] arr = new String[3];초기화 시 사이즈를 명시하지 않는다.크기가 가변적이며 Default 크기는 10이다.ArrayList arr_list = new ArrayList();속도초기화 시 메모리에 할당하므로ArrayList 보다 빠르다.데이터 추가 및 삭제 시 메모리를 재할당하기 때문에속도가 Array 보다 느리다.크기 변경사이즈 변경 불가추가, 삭제 가능add(), remove() 아래 예시를 보자String[] arr = new String[3];ArrayList arr_list = new ArrayList();System...
Array(배열) 과 ArrayList 차이Array(배열) 과 ArrayList 의 차이가 궁금해져 정리하게 되었다. Array(배열)ArrayList사이즈초기화 할때 명시하여 고정시킨다.String[] arr = new String[3];초기화 시 사이즈를 명시하지 않는다.크기가 가변적이며 Default 크기는 10이다.ArrayList arr_list = new ArrayList();속도초기화 시 메모리에 할당하므로ArrayList 보다 빠르다.데이터 추가 및 삭제 시 메모리를 재할당하기 때문에속도가 Array 보다 느리다.크기 변경사이즈 변경 불가추가, 삭제 가능add(), remove() 아래 예시를 보자String[] arr = new String[3];ArrayList arr_list = new ArrayList();System...
2024.05.29