2023.02.11.SAT

ronglong·2023년 2월 11일
0

1. 02.10. (금) 모의 면접

  • 선택한 질문
    • Spring Security의 인증 처리 흐름에 대해 설명해 주세요.
    • Filter가 무엇인지 설명하고 Filter Chain의 동작에 대해 설명해 주세요.
    • 본인이 구현해 본 CI/CD 배포 자동화 과정을 설명해 주세요.

//

2. JMT - Spring Security JWT

filterChain
...
.cors().configurationSource(corsConfigurationSource())
...

@Bean
    public CorsConfigurationSource corsConfigurationSource() {}
  • CorsSource 정책 설정할 때, credential을 허용하면, origin에 ("*")모든 사이트 허용을 할 수 없고, 대신에 addAllowedOriginPattern("*") 을 사용해야한다는 내용을 검색하다가 봤는데, credential() 메서드의 역할이 무엇인지 잘 이해가 잘 안 된다.
    https://lovon.tistory.com/156
  • AuthenticationProvider에서 인증에 성공하여 만들어지는 authentication의 principal은 userDetails 객체임.
  • @Value에 환경변수 경로만 집어넣고, 따로 설정 안 하고 돌려보니 UnsatisfiedDependencyException 에러 발생. 필드에 의존성 주입 부재로 인함.
    https://dololak.tistory.com/545
  • 지금 docker에서 DB를 돌려서 사용하고 있는데, 도커 실행 안 한 채로 어플리케이션 run했다가, Hibernate, Could not extract ResultSet 에러 만남ㅎ
    https://baekh-93.tistory.com/45
  • 토큰 검증 실패시(VerificationFilter) 에러 문구가 제대로 안 뜨길래 봤더니, SignatureException에 대한 처리를 따로 해줘야함. (+ ExpiredJwtException)
    임포트 경로 : import io.jsonwebtoken.security.SignatureException;
  • SecurityConfiguration 설정에서 .headers().frameOptions().sameOrigin() 의 설정 기준에 대해 궁금해서 검색해봤다.
    클릭재킹 공격을 막기위해 디폴트 설정이 Deny이고, HTML 태그를 이용한 렌더링 허용 여부 설정인데, 이해가 좀 어렵다.
    https://gigas-blog.tistory.com/124
    https://goni9071.tistory.com/360
  • iframe 설명
    https://developer.mozilla.org/ko/docs/Web/HTML/Element/iframe
  • 권한 설정을 통해, 본인이 쓴 글은 본인만 보게 하려는 로직을 동기님이랑 작성하다가 ClassCastException이 났는데, 디버그 찍어보니 검증을 통해 VerificationFilter 거칠 때 토큰에서 Claim을 가져와서 인증된 Authentication의 Principal에 username만 넣어놨음.
    객체가 아니라 이메일이었다. 타입이 달라서 에러가 난 것.
    인증될 때는 객체로 UserDetails를 반환할 지 몰라도, 검증할 때는 필터가 달라서 다르다.
  • 타입 알고 싶을 때는 단축키 : cmd + opt + v
  • 개발할 때는 @RestControllerAdvice 사용하지 말기.

<느낀 점>
금요일에 블로깅 쓰다가 말아서 이어서 썼다.
시큐리티 너무 어렵고...
섹션4까지 끝나고 이제 프로젝트라니,, 말도 안 된다.
포기하지 말아봐 일단,,

0개의 댓글