본문 바로가기

스파르타코딩클럽(내일배움캠프)

스파르타코딩클럽 내일배움캠프 13주차 WIL

728x90

주말동안 여러가지 생각을 했었고, 공부에 별로 집중은 못했지만

 

시큐리티와 글로벌 익셉션 부분을 완벽하진 못하지만 이해하고, 소스코드에 어떻게 적용됬는지 분석을 했다.

 

@AuthenticationPrincipal에 의해 Authentication의 pricipal부분을 가져왔기때문에, 편하게 Controller에서 사용할 수 있다.

 

결론적으로 Filter에서 인증 객체를 생성할때, UserDetailsImpl 을 넣었기 때문에, @AuthenticationPrincipal에 편안하게

인증 할 수있다.

 

UserDetails userDetails = userDetailsService.loadUserByUsername(username);
return new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());

 

securityFilterChain에서 

http.exceptionHandling()
        .accessDeniedHandler(jwtAccessDeniedHandler)
        .authenticationEntryPoint(jwtAuthenticationEntryPoint);

에서 401 403 에러를 핸들링 한다 즉 인가 인증을 핸들링한다.

 

@RestControllerAdvice 에의해서 서버와 클라이언트 통신을 할때 글로벌하게 Exception을 채와서 처리를 한다.

 

계획에 비해 한참 부족한 성과지만 욕심내지말고 차근차근 공부해 나가서, 조금이라도 성장하고 싶다.

 

many to many의 문제점

https://codeung.tistory.com/254

 

@ManyToMany를 사용하면 안 되는 이유

다대다 관계의 경우 그대로 사용하지 못하고 반드시 정규화를 통해 중간 테이블을 만들어줘야 한다. 이러한 관계가 있을 때 반드시 중간 중간 테이블을 두어 일대다+다대일 형태로 변형해줘야

codeung.tistory.com

 

중간에 fk로만 통신하기 때문에, 서비스 로직자체에 값을 넣을 수없다?? 

그래서 중간 테이블을 만들었다?? 이해한게 맞는지 잘 모르겠다.

728x90