
REST API - Security - Spring Security - OAuth2 Authorization Server Config OAuth2 인증 방법 Spring OAuth2 에서 지원하는 6가지 방법중 2가지를 사용하여 인증 서비스를 지원 한다. Password와 Refresh Token 방식 Password Spring OAuth2가 지원하는 방법중 하나 Twitter 로그인시 ID와 PASSWORD를 직접 입력하여 여러 홉을 거칠 필요없이 바로 로그인하는것처럼 PASSWORD를 직접 입력하는 방식이기때문에 PASSWORD라는 이름이 붙음. 최초 발급시 사용하는 방법 홉이 1번만 일어난다. 요청과 응답이 1쌍이다. 보통의 방법은 홉이 많음 Token을 발급 받을수 있는 Token을 발급하고 T..

RESTAPI - Security - Spring Security Config 2 Spring Security 설정 변경 HttpSecurity 익명 사용자 요청을 허용 form 인증방식 사용 GET /api/** 의 모든요청을 허용 나머지 요청들은 인증이 필요하도록 설정 문제점 Spring Security에서는 PasswordEncoder를 사용하여 동일 여부를 판단하지만 현재 AccountService 는 PasswordEncoder를 사용하여 유저를 등록하지 않는다. AccountService AccountService 에서 PasswordEncoder를 사용하여 등록하도록 변경 테스트 코드 AccountRepository 를 사용하여 직접 사용자를 등록하지않고 AccountService 를 사용하..

RESTAPI - Security - Spring Security 기본설정 스프링 시큐리티가 의존성에 존재하면 시큐리티 자동 설정이 동작 모든 요청에 인증이 필요하게됨. 모든 컨트롤러 테스트는 실패하게 됨. 시큐리티가 사용자를 인메모리로 임의로 생성해준다. 시큐리티 설정 시큐리티 필터 미적용 /docs/index.html 인증단계 없이 접근 GET /api/events GET /api/events/{id} 인증이 필요 나머지 모든 API 들 POST /api/events PUT /api/events/{id} ... Spring Security OAuth2.0 설정 공통적으로 필요한 설정 적용하기 PasswordEncoder Bean 등록 AppConfig 클래스를 생성하여 Application 설정들을 ..

REST API - Security - Account Service AccountServiceTest 기존에 만들어둔 BaseControllerTest 클래스는 ServiceLayer에선 사용하지않는 MockMvc를 포함하고 있기때문에 상속하지 않는다. UserDetailsService를 구현하는 AccountService 테스트 AccountService loadUserByUsername() username(email) 에 해당하는 사용자를 찾는다. 없다면 UsernameNotFoundException 존재한다면 UserDetail 구현체인 User 객체를 반환한다. authorities() username에 해당하는 사용자를 찾아 해당 사용자의 권한을 SimpleGrantedAuthority로 변환한..