Security 알아야할 4가지 처리 흐름
- WebSecurityConfig 요청접근허가 , 로그인 사용여부(UserPasswordAthenticationFilter사용)
- UserDetailsServiceImpl
- UserDetailsImpl
- AuthenticationPrincipal
/**
* 1. 인증설정 (WebSecurityConfig.java)
* WebSecurityConfig > http.formLogin() > UsernamePasswordAuthenticationFilter > SecurityFilterChain > 요청별 인증수행
* 2. 인증정보 받아오기 & 인증객체에 넣기 (UserDetailsServiceImpl.java)
* UsernamePasswordAuthenticationFilter > UserDetailsService 구현 > loadUserByUsername() > User > UserDetails > Authentication (createSuccessAuthentication()에서 만들어짐)
* 3. 인증정보 구현체 (UserDetailsImpl.java)
* UserDetails 구현체 > UserDetailsImpl
* 4. 인증객체(Authentication)에서 UserDetails 값 받아오기 (@AuthenticationPrincipal)
* Authentication > getPrincipal() > UserDetails > user
*/
오늘의 에러
@GeneratedValue(strategy = GenerationType.IDENTITY)
해당 어노테이션이 붙어있으면 기본키값 생성을 DB에 위임한다. 즉 해당값을 null으로 두면 DB가 알아서 Auto_Increment해준다.
해당 내용에서 발생한 에러 id값을 지정해주지 못해 에러가 발생했다.
알고보니 테이블 생성시 Auto_Increment를 설정해주지 않아서 생긴문제 였다.
최초 생성시 생성해주지 않으면 나중에 바꿀때 워크벤치를 열어서 바꿔야해서 다시 생성해서 해결했다.