본문 바로가기

Spring/Security5

Authentication 메커니즘 인증 ( Authentication ) Authetication은 인증된 결과만 저장하는 것이 아니고, 인증을 하기 위한 정보와 인증을 받기 위한 정보가 하나의 객체에 동시에 들어있다. 인증을 제공해 줄 제공자(AuthenticationProvider)가 어떤 인증에 대해서 허가를 내줄 것인지 판단하기 위해서는 직접 입력된 인증을 보고 허가된 인증을 내주는 방식이기 때문이다. AuthenticationProvider는 처리 가능한 Authentication에 대해 알려주는 support 메소드를 지원하고, authentication()에서 Authentication을 입력값과 출력밧으로도 사용한다. Credentials : 인증을 받기 위해 필요한 정보, 비번등 (input) Principal : 인증된.. 2022. 6. 11.
기본 실습 설계 index.html에 접속해서 로그인 시도를 한다. user권한이 있을 경우 "/user-page"로 접속하고, admin권한이 있는 경우 "/admin-page"로 접속한다. 소스코드 Back-End Spring Security를 configuration하기 위해서는 WebSecurityConfigurerAdapter를 상속받고, configure를 overriding해준다. @EnableWebSecurity(debug = true) @EnableGlobalMethodSecurity(prePostEnabled = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { private final CustomAuthDetails.. 2022. 6. 5.
폼 로그인 로그인 하기 스프링 프레임워크에서 로그인을 한다는 것은 authenticated 가 true인 Authentication 객체를 SecurityContext 에 갖고 있는 상태이다. (단, Authentication이 AnonymousAuthenticationToken 만 아니면 된다.) 로그인 == Authentication(authenticated = true) only if Authentication != AnonymousAuthenticationToken Authentication (인증)의 기본 구조 인증 토큰(Authentication)을 제공하는 필터들 UsernamePasswordAuthenticationFilter : 폼 로그인 -> UsernamePasswordAuthentication.. 2022. 5. 30.
SpringSecurity구조 Spring Security 큰 그림 톰켓과 같은 웹 애플리케이션을 서블릿 컨테이너라고 부르는데, 이런 웹 애플리케이션(J2EE Application)은 기본적으로 필터와 서블릿으로 구성되어 있습니다. 모든 Request들은 모든 필터를 차례대로 거친 다음 Servlet에 도착하게 된다. DelegatingFilterProxy 필터체인은 반드시 한개 이상이고, url패턴에 따라 적용되는 필터체인을 다르게 할 수 있다. 위 그림 처럼 /api/하위 FilterChain과 /admin/하위 FilterChain이 다를 수 있다. 만약에 공유하고 있다면 모든 FilterChain을 통과해야 하는 단점이 생긴다. proxy가 메인 필터 체인에 있고, proxy 하위에 SecurityFilterChain그룹을 등.. 2022. 5. 30.
Spring Security Spring Security 웹사이트는 각종 서비스를 하기 위한 리소스와 서비스를 사용하는 유저들의 개인 정보를 가지고 있다. 이들 리소스를 보호하기 위해서 일반적으로 웹 사이트는 두가지 보안 정책을 설정해야 합니다. 1. 서버 리소스 2. 유저들의 개인정보 이러한 개인정보를 보호하기 위해 개발자를 서포트 해주는 것이 Spring Security다. 관심을 가지고 있는 것은 2가지 이다. 인증 : 사용자가 누구인지 권한 : 어떤 권한을 가지고 있는지 인증(Authentication) 싸이트에 접근하는 사람이 누구인지 시스템이 알아야 한다. 익명사용자를 허용하는 경우도 있지만, 특정 리소스에 접근하거나 개인화된 사용성을 보장 받기 위해서는 반드시 로그인하는 과정이 필요하다. 로그인은 보통 username .. 2022. 5. 30.