오늘의 목표 :
API 에서 Event 생성, 수정과 같은 경우(Post, Put 요청)에는 Event list, detail 조회, RestDocs 정보 페이지등 과 달리 인증정보가 필요하다.
REST API 보안 적용 (OAuth2)을 하기위해
Account 도메인 추가, Spring Security 적용, 기본설정, Form 인증설정 을 해보자.
오늘의 목차 :
1. Account 도메인 추가
2. Spring Security 적용
3. Spring Security 기본설정
4. Spring Security Form 인증설정




UserDetailsService는 Spring Security에서 사용자 인증을 위해 필요한 정보를 제공하는 인터페이스이다.
Spring Security를 사용자 인증과 관련된 작업을 처리하기위해 UserDetailsService를 구현해야한다.


AccountService.loadUserByUsername 했을 때 우리는 Email을 통하여 회원정보를 가져왔다. 해당회원정보가 없다면 UsernameNotFoundException을 발생시켰기 때문에 테스트를 작성할 때 없는 Email로 회원을 찾고 해당 테스트가 assertThrows를 사용하여 UsernameNotFoundException.class예외를 발생시키길 기대한다고 작성한다.


ModelMapper와, PasswordEncoder를 Bean 으로 등록해준다. ModelMapper는 기존 RestApiApplication 에 있었지만 이동해준다.

ApplicationRunner 를 Bean 으로 등록하여 Application이 시작할 때 테스트용 계정과 Event 를 30개정도 생성 하도록 추가해준다.


/docs/index.html에 접근하는 요청과, 정적 리소스에 대한 접근 권한은 접근을허용하고, 다른 모든요청에 대해 인증이 필요하다고 설정하였다.

/docs/index.html 요청할 때는 권한이 필요없이 접근가능한 것을 확인할 수 있다.

