Java/Spring
-
Spring Security 에서 세션 제어를 위해 인증 api를 추가해줘야 한다. 아래와 같이 HttpSecurity 의 .sessionManagement() 를 사용해 세션 관리 기능이 동작한다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest() .authenticated() .and() .formLogin() .and() .sessionManagement() .maximu..
Spring Security 정리하기 (#3 세션 제어)Spring Security 에서 세션 제어를 위해 인증 api를 추가해줘야 한다. 아래와 같이 HttpSecurity 의 .sessionManagement() 를 사용해 세션 관리 기능이 동작한다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest() .authenticated() .and() .formLogin() .and() .sessionManagement() .maximu..
2022.12.23 -
Spring Security 에서 인증이 되지 않은 사용자는 다른 페이지로 이동을 시도할 경우 로그인 페이지로 리다이렉트 됩니다. 사용자가 로그인 정보를 입력하고 로그인을 시도한다. 인증이 될 경우 Authentication 이라는 인증 토큰을 생성하고 해당 토큰을 Security Context 및 세션에 저장한다. 사용자가 요청을 하게 되면 Spring Security 는 세션에 저장된 인증토큰을 확인하여 인증된 사용자라고 판단하여 요청에 대한 응답을 하게 된다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure..
Spring Security 정리하기 (#2 Form Login 구현)Spring Security 에서 인증이 되지 않은 사용자는 다른 페이지로 이동을 시도할 경우 로그인 페이지로 리다이렉트 됩니다. 사용자가 로그인 정보를 입력하고 로그인을 시도한다. 인증이 될 경우 Authentication 이라는 인증 토큰을 생성하고 해당 토큰을 Security Context 및 세션에 저장한다. 사용자가 요청을 하게 되면 Spring Security 는 세션에 저장된 인증토큰을 확인하여 인증된 사용자라고 판단하여 요청에 대한 응답을 하게 된다. @Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure..
2022.12.21 -
아래 내용은 인프런 정수원님의 강의를 듣고 정리하는겸 적은 글입니다. https://www.inflearn.com/course/%EC%BD%94%EC%96%B4-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com Spring Boot 에서 Spring Security 를 사용하기 위해 아래와 같이 pom.xml에 의존성을 추가..
Spring Security 정리하기 (#1 사용자 정의 보안 기능 구현)아래 내용은 인프런 정수원님의 강의를 듣고 정리하는겸 적은 글입니다. https://www.inflearn.com/course/%EC%BD%94%EC%96%B4-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0 스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security - 인프런 | 강의 초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과 www.inflearn.com Spring Boot 에서 Spring Security 를 사용하기 위해 아래와 같이 pom.xml에 의존성을 추가..
2022.12.21 -
MyBatis 를 사용할 때 데이터를 사용하는 대입과 치환 방법 2가지가 있다. #{} 방법 //Model public class VOModel { String name; ...getter, setter 생략 } SELECT * FROM test_table WHERE name = #{name} 위와 같이 #{name} 을 사용하게 되면 아래와 같이 치환된다. name 의 값이 abc 라고 하면 아래와 같다. SELECT * FROM test_table WHERE name = 'abc' #{} 으로 사용하게 되면 변수에 작은 따옴표(')가 자동으로 붙여 쿼리가 수행되기 때문에 작은따옴표를 따로 붙일 필요가 없다. 좀더 깊이 들어가자면 #{} 를 사용하게 되면 처음 쿼리는 아래와 같다. SELECT * FR..
[MyBatis] #{} 와 ${} 의 차이MyBatis 를 사용할 때 데이터를 사용하는 대입과 치환 방법 2가지가 있다. #{} 방법 //Model public class VOModel { String name; ...getter, setter 생략 } SELECT * FROM test_table WHERE name = #{name} 위와 같이 #{name} 을 사용하게 되면 아래와 같이 치환된다. name 의 값이 abc 라고 하면 아래와 같다. SELECT * FROM test_table WHERE name = 'abc' #{} 으로 사용하게 되면 변수에 작은 따옴표(')가 자동으로 붙여 쿼리가 수행되기 때문에 작은따옴표를 따로 붙일 필요가 없다. 좀더 깊이 들어가자면 #{} 를 사용하게 되면 처음 쿼리는 아래와 같다. SELECT * FR..
2022.12.14 -
Statement 자바에서 정적 쿼리문을 수행할 때 java.sql 패키지에 있는 Statement 인터페이스를 사용하게 된다. Statement 객체에 Connection 되어 있는 곳에 쿼리문을 수행하고 결과를 반환한다. Statement 는 아래와 같은 동작 순서를 가진다. 1. SQL 쿼리문 분석 2. 쿼리문 컴파일 3. 실행 아래는 예시이다. int seq = 3; String sql_str = "SELECT name FROM test_table WHERE seq = " + se String url = "jdbc:mysql://localhost:3306/DB명"; String username = "DB 계정 ID"; String password = "DB 계정 PW"; Connection con..
[sql] statement 와 preparedStatementStatement 자바에서 정적 쿼리문을 수행할 때 java.sql 패키지에 있는 Statement 인터페이스를 사용하게 된다. Statement 객체에 Connection 되어 있는 곳에 쿼리문을 수행하고 결과를 반환한다. Statement 는 아래와 같은 동작 순서를 가진다. 1. SQL 쿼리문 분석 2. 쿼리문 컴파일 3. 실행 아래는 예시이다. int seq = 3; String sql_str = "SELECT name FROM test_table WHERE seq = " + se String url = "jdbc:mysql://localhost:3306/DB명"; String username = "DB 계정 ID"; String password = "DB 계정 PW"; Connection con..
2022.12.14 -
Java 개발자라면 한번쯤은 봤을 Static 키워드이다. Static 키워드로 선언된 필드, 메소드, 클래스는 프로그램이 실행될 때 생성 및 초기화가 된다. 즉, 프로그램이 시작될 때 메모리에 올라간다. 메모리에 올라가 같은 주소만을 바라보기 때문에 공유할 수 있어 공유해야 하는 필드에 보통 사용한다. Static 키워드는 필드, 메소드, 클래스에 적용할 수 있다. static 필드 public class Obo { public String name = "obo"; } public class Ok { public static final int number = 123; public static String name = "ok"; } public class Test { System.out.println("..
Static 키워드Java 개발자라면 한번쯤은 봤을 Static 키워드이다. Static 키워드로 선언된 필드, 메소드, 클래스는 프로그램이 실행될 때 생성 및 초기화가 된다. 즉, 프로그램이 시작될 때 메모리에 올라간다. 메모리에 올라가 같은 주소만을 바라보기 때문에 공유할 수 있어 공유해야 하는 필드에 보통 사용한다. Static 키워드는 필드, 메소드, 클래스에 적용할 수 있다. static 필드 public class Obo { public String name = "obo"; } public class Ok { public static final int number = 123; public static String name = "ok"; } public class Test { System.out.println("..
2022.12.14