Spring Security - Security 적용하기 스프링 부트를 활용해서 스프링 시큐리티를 적용한다. 의존성만 추가하여도 스프링부트가 제공하는 기본적인 스프링 시큐리티 자동설정이 적용된다. 의존성 org.springframework.boot spring-boot-starter-security 기존의 문제 2가지 해결이된다. 기존의 문제점 인증 방법이 존재하지 않음 인증 방법이 존재하지않아 현재 사용자가 누구인지 알 방법이 없다. 부트가 제공하는 자동설정 기본 유저가 생성된다 기본 username user 기본 password console에 매번 새로운 password가 지정된다. 모든 요청이 인증을 필요로 하게 된다. 로그인을 하면 이전과 같이 NullPointerException이 발생하지않고..

Spring Security - Project Init 프로젝트 생성 의존성 Spring Boot 2.1.7 lombok thymeleaf devtools Index 페이지 만들기 프로젝트를 생성하면 classpath:resources 디렉터리 하위에 templates 디렉터리가 존재한다. 만약 없다면 생성해줄것 해당 디렉터리 하위에 index.html 파일을 생성한다. Template Engine으로 Thymeleaf 를 사용한다. Thymeleaf 를 사용하기위해서는 namespace 선언을 필요로한다. Thyleaf 사용을 위한 namespace 선언부 :th 에 해당하는 부분은 일종의 alias이다. 원한다면 다른 alias를 지정할 수 있다. namespace를 선언하고나면 thymeleaf 표..
스프링 시큐리티란 ? 스프링 시큐리티 레퍼런스에서는 자바 EE기반의 엔터프라이즈 소프트웨어 애플리케이션을 위한 포괄적인 보안 서비스들을 제공하고, 오픈소스 플랫폼이면서 자신만의 인증 매커니즘을 간단하게 만들수 있다고 소개한다. 또한 상당히 깊은 권한 부여를 제공하고 있다. 권한 부여에도 두가지 영역이 존재한다. 웹 요청권한 메서드 호출 및 도메인 인스턴스에 대한 접근 부여 권한 HTTP 기본인증 로그인 화면을 통해 아이디와 패스워드를 입력받아 로그인하는 과정을 인증이라고 서술한다. 이와 관련된 용어가 바로 HTTP 기본인증, HTTP Basic 매커니즘이라고 할 수 있다. HTTP Basic 인증 매커니즘을 이용하는 방식이 스프링 시큐리티에서 소개하는 폼 기반 로그인이다. HTTP Basic == For..

REST API - 깨진 테스트 수정하기 기존에 작성했던 테스트중 깨지는 테스트가 발생한다. updateEvent getEvent updateEvent 깨지는 이유 ? 로그를 먼저 살펴보자 EventController의 156 Line에서 NullPointerException이 발생한다. EventController 의 156 Line event의 Manager가 Null인 상태에서 equals를 호출하기때문에 예외가 발생한다. 기존 Event의 Manager가 Null인 경우 해당 예외가 발생한다. 왜 Null 이지 ? 기존 테스트 코드들을 살펴보자. 기존의 테스트 코드들은 event를 생성할때 Event에 대한 정보만 생성 할뿐 manager정보에 대한 설정을 하지 않는다. 해결 방법 우선 Accou..