본문 바로가기

학습68

[spring] 스프링 부트에서 Spring Security 커스터마이징하기 Web Security 커스터마이징 - WebSecurityConfigurerAdapter를 상속하던 SpringBootWebSecurityConfiguration 대체 - 모든 HTTP요청에 인증을 요구하던 스프링 부트의 자동설정 해제 WebSecurityConfigurerAdapter를 implements하는 @Configuration class 생성 스프링 부트의 SpringBootWebSecurityConfiguration이 빈으로 등록되지 않게 된다. HttpSecurity 객체를 파라미터로 받는 configure 메소드 오버라이드 authroizeRequest() : http요청을 위한 웹 기반 보안을 설정하겠다는 의미 antMatchers() : ant pattern으로 URL지정 permi.. 2020. 5. 21.
[spring] 스프링 부트에서 Spring Security 사용하기 Spring Security 보안과 관련된 인증(Authentication) / 권한부여(Authorization) 기능 제공 Spring Security 실습할 view 준비하기 Thymeleaf로 view rendering을 할 것이므로, spring-boot-starter-thymeleaf 의존성 추가 컨트롤러 추가하여 "/hello" 및 "/my" GetMapping index / hello / my html 생성 테스트1 @WebMvcTest로 MockMvc 주입받기 hello / my에 get요청을 보내는 @Test 생성 (mockMvc.perform(get("/hello")) ResultActions의 andExpect(view().name("hello"))로 이름 확인! cf) 아무의미 없.. 2020. 5. 19.
[spring] 스프링 부트에서 Redis 사용하기 Redis? Key-value NoSQL DB 캐시 / 메세지 브로커 / Key-value Store로 사용가능 Redis 설치하기 의존성 추가 : spring-boot-starter-data-redis 레디스 인스턴스 생성 cf) redis는 공식적으로 윈도우를 지원하지 않지만, 능력자가 비공식적으로 사용할 수 있게 만들어놓았다. 해당 링크에서 설치한 뒤, 서버를 띄워서 cli를 사용하면 된다. github.com/microsoftarchive/redis/releases microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind o.. 2020. 5. 18.
[spring] 데이터베이스 초기화 및 마이그레이션 1번 - Spring Data JPA를 사용한 데이터베이스 초기화 1. spring.jpa.generate-ddl=true - @entity가 명시된 클래스를 찾아서, 해당 클래스에 맞는 ddl을 생성하고 실행 2. spring.jpa.hibernate.ddl-auto create-drop : 어플리케이션 실행 시, 테이블 생성하고, 종료 시 drop create : 어플리케이션 실행 시, 기존 테이블 drop하고 테이블 생성 update : 어플리케이션 실행 시, Entity 클래스와 스키마를 비교해서, DB에 없는 테이블, 컬럼만을 추가 (기존 스키마의 정보를 바꿀 수는 없음) 3. spring.jpa.show-sql=true - 콘솔에 JPA를 통해 실행되는 SQL문을 출력 4. spring.jpa.. 2020. 5. 17.
[spring] 스프링 어노테이션 및 메소드 정리 Java Annotation Detail @interface - 어노테이션 클래스에 선언 - 이 파일을 어노테이션 클래스로 선언 - 해당 클래스명을 가진 어노테이션이 생성되었다고 보면 됨! 1 2 3 4 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface LoginUser{ } @Target - 어노테이션 클래스에 선언 - 이 어노테이션이 위치할 수 있는 곳을 결정한다 - ElementType.PARAMETER의 경우, 메소드의 파라미터로 선언된 객체에서만 사용가능 @Retention - 어노테이션 클래스에 선언 - 이 어노테이션이 어떤 시점까지 유지될 수 있는지 결정한다 - 값 미지정 시 default .. 2020. 5. 10.