본문 바로가기

Java/spring19

spring security를 알아보자 - 11 ㅇ Spring Security에서 필터란? 간단히 보면 클라이언트에서 오는 요청을 필터에서 한번 걸러서 서블릿으로 전달을 한다. 이때 필터는 어떤걸 걸러주는 걸까? 여러가지 필터가있지만 뭐 예를들어 보자면, SecurityContextPersistenceFilter: 보안 컨텍스트를 로드하거나 저장함. CsrfFilter: CSRF 공격을 방지함. LogoutFilter: 로그아웃 처리를 함. UsernamePasswordAuthenticationFilter: 폼 로그인 처리를 함. 각 필터는 요청을 처리하고, 다음 필터로 요청을 전달하거나, 필터 체인을 종료하고 응답을 반환할 수 있다. 필터는 요청 또는 응답을 수정할 수 있으며, 인증 실패와 같은 경우에 요청 처리를 중단하고 오류 응답을 반환할 수도.. 2024. 4. 18.
spring security를 알아보자 - 10 ㅇ 인증과 인가의 차이 인증(Authentication)은 사용자의 신원을 확인하는 과정. 사용자가 누구인지를 식별하고 검증하는 것. 대표적인 예시로 로그인이 있다. 인가(Authorization)은 인증된 사용자가 수행할 수 있는 행동을 결정하는 과정. 인증이 실패하면 401, 인가가 실패하면 403. 인증이 됐지만 이 유저는 접근할 수 없다는 뜻. 애플리케이션 내에는 다양한 역할이 존재하고 역할마다 접근할 수 있는 서비스는 다를 것이다. 그래서 우리는 인가 설정을 잘 해야한다. ㅇ 어디에 인가정보가 저장될까? Spring Security에서는 이 권한 또는 특권을 권한(Authorities), 역할(role)로 구분해서 부른다. 저장되는 방식은 비슷한다. 먼저 권한을 보자. GrantedAuthori.. 2024. 4. 15.
spring security를 알아보자 - 9 ㅇ CORS(Cross-Origin Resource Sharing) CORS 에러는 웹 애플리케이션에서 요청을 보낼 때, 해당 요청이 다른 도메인, 프로토콜, 또는 포트를 가지고 있는 서버로부터 자원을 요청하는 경우에 브라우저에 의해 발생한다. 서버에서 이러한 요청을 허용하려면, 응답에 Access-Control-Allow-Origin과 같은 CORS 헤더를 포함해야 합니다. 서버 설정에서 이 헤더를 올바르게 구성하지 않으면, 브라우저는 보안상의 이유로 응답을 차단하고, 개발자 콘솔에 CORS 관련 에러 메시지를 표시함. CORS는 보안공격이 아니라, 그로부터 지키기 위해 실행되는 보호단계로 보면 된다. 나도 처음 프로젝트에서 CORS 설정을 해주지 않아서 배포과정에서 실패했던 기억이 있다. 좀더 알기 .. 2024. 4. 2.
spring security를 알아보자 - 8 저번까진 spring security에서 제공하는 비밀번호 인코딩 해싱에 대해 봤다. 이번엔 Authentication Provider에 대해 자세히 아라보자. ㅇ Authentication Provider의 역할 사용자가 제공한 인증정보를 기반으로 사용자의 인증을 수행하는 역할을 함. 인증정보가 유효한지 검증하고, 해당 사용자에 대한 인증을 완료하는 과정을 담당함. Authentication 객체를 검사해 해당 사용자가 시스템에 접근할 권한이 있는지 확인하고, 사용자의 상세정보를 로드하고, 인증결과를 새로 Authentication 객체로 생성한다. ㅇ Authentication Provider의 종류 DaoAuthenticationProvider: 가장 기본적인 AuthenticationProvide.. 2024. 3. 29.