본문 바로가기

전체 글99

[Security] JWT와 JWS는 뭘까...? 둘이 신경쓰이게 된 부분은 JWT Token을 검증하는 단계에서 Claims claims = Jwts.parser() .setSigningKey(key) .parseClaimsJws(jwt.replace("Bearer ", "").trim())//pass the jwt that we received .getBody(); // want to read body part of jwt token parseCaimsJwt를 사용하면 io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported. 에러를 확인할 수 있기 때문이다. 그럼 무엇인 문제인걸까? 아래 링크를 확인하면 https://developer.okta.com/blog/202.. 2023. 1. 6.
[Security] 시큐리티 세션정책 http .sessionManagement() .sessionCreationPolicy( SessionCreationPolicy.정책상수) SessionCreationPolicy.ALWAYS - 스프링시큐리티가 항상 세션을 생성 SessionCreationPolicy.IF_REQUIRED - 스프링시큐리티가 필요시 생성(기본) SessionCreationPolicy.NEVER - 스프링시큐리티가 생성하지않지만, 기존에 존재하면 사용 SessionCreationPolicy.STATELESS - 스프링시큐리티가 생성하지도않고 기존것을 사용하지도 않음 - JWT 같은토큰방식을 쓸때 사용하는 설정 2023. 1. 5.
SecurityFilterChain을 작성해보자 사용자 요청에 따라서 특정 URL에 대한 접근을 제한하고 풀어줄 수 있으며 SecurityFilterChain로 정의 한다. 하지만 해당 설정을 진행하지 않더라도 Spring에는 Default로 진행하는 SecurityFilterChain이 존재한다. SpringBootWebSecurityConfiguration //IDE에서 검색해보자 중요한 부분은 해당 메도스가 default configuration for web security인 점과 사용자가 개인의 SpringFilterChain @Bean을 선언한다면 해당 Configuration은 back-off completely 한다는 점이다. config 작성에 어려움이 있다면 defaultSecurityFilterChain을 활용해서 개인 config.. 2023. 1. 2.
Spring Security 구성과 흐름 해당 게시글은 Spring Security의 이해를 위해서 작성했다. Spring Security INTERNAL FLOW Spring Security Filter : 사용자 측에서 보내는 request들을 확인하여 인증이 필요 여부를 확인한다. 필요하다면 login page로 보내거나 저장 되어있는 정보를 확인한다. Authentication : UsernamePasswordAuthenticationFilter가 http로 부터 username, password를 추출하며 Authentication 타입의 객체를 준비한다. AuthenticationManger : 사용가능한 AuthenticationProviders를 관리하며 책임진다. AuthenticationProvider : 인증 비즈니스 로직들.. 2023. 1. 2.
2022년 회고 그리고 다가올 2023은? GOOD BYE 2022 2022년의 가장 큰 변화는 역시 퇴사가 아닐까 싶다. 2021년 여름에 입사하고 2022.11월에 첫 회사를 퇴사하게 되었다. 담당하고 있던 프로젝트에 추가로 큰 프로젝트에 투입 된 해였다. 각 파트의 사람들 그리고 기능별 담당자들과 회의를 통해서 결정하고 개발을 진행할 수 있는 기회를 얻어서 나름 기뻣던 프로젝트다. 하지만 프로젝트를 진행하면서 스스로에게 깊은 고민이 시작된 계기이기도 했다. 내가 코드를 짜고 있는건지 아니면 복사 붙여넣기만 하고 기능을 구현한건지 의구심이 들기 시작했다. 설상가설로 담당하고 있었던 프로젝트의 개선 작업을 진행하지 못하게 된것이다. 3개월 정도의 준비 기간과 지원 프로젝트가 끝나면서 겨우 시작할 수 있었을 작업이지만 아쉽게도 담당에서 벗어나게 .. 2023. 1. 1.
Spring Security 기본 정리 기본적으로 인증 인가를 담당하는 프레임 워크이다. 인증 (Authenticate, 누구인지) 인가 (Authorize, 어떤것을 할 수 있는지?)를 담당해준다. 그럼 우리가 Spring Security안에서 자주 확인하는 단어들을 확인해보자. Principal (접근 주체) : 보호된 리소스에 접근하는 대상 Authentication (인증) : 보호된 리소스에 접근한 대상에 대해 누구인지, 애플리케이션의 작업을 수행해도 되는지 확인 Authorize (인가) : 해당 리소스에 대한 접근 권한을 가지고 있는지 확인 권한 : 접근 제한, 모든 리소스는 접근 제한이 존재한다. 이 과정에서 해당 리소스에 대한 제한된 최소 권한을 가졌는지 확인 인증관리자 (Authentication Manager)와 접근 결정.. 2022. 12. 30.