전체 글
-
Web - Cookie & SessionWeb/Web 2021. 10. 19. 22:16
HTTP의 특징 HTTP의 특징 Connectionless Stateless - 클라이언트가 요청을 한 후 서버측에서 응답을 받으면 그 연결을 끊어 버리는 성질 - 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나면서 상태정보를 유지하지 않는 성질 ㆍ HTTP 프로토콜 환경은 Connectionless, Stateless 한 특성을 가지기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 한다. ㆍ 이 특성을 보완하기 위해 Cookie와 Session을 사용하게 된다. Cookie란? Cookie의 정의 ㆍ 웹 사이트에 접속할 때 생성되는 정보를 담은 임시 파일이다. ㆍ 서버가 사용자의 웹 브라우저에 저장하는 데이터를 말한다. ㆍ 데이터의 형태는 key와 value 쌍으로 구성되고 String 형태로 이..
-
Web - 웹의 동작 원리Web/Web 2021. 10. 19. 22:14
웹의 동작 원리 웹의 동작 순서 1. 사용자가 웹 브라우저의 주소창에 특정 사이트의 주소를 입력한다. 2. 웹 브라우저가 DNS에게 특정 사이트의 도메인 주소를 요청한다. 3. DNS가 웹 브라우저에게 사이트의 IP 주소를 응답한다. 4. 웹 브라우저가 웹 서버에게 IP 주소를 이용하여 html 문서를 요청한다. 5. 웹 서버는 즉시 웹 페이지를 응답하지 못하고, 웹 애플리케이션 서버와 데이터베이스에서 웹 페이지 작업을 처리한다. 6. 작업 처리 결과를 웹 서버로 보낸다. 7. 웹 서버는 웹 브라우저에게 html 문서 결과를 응답한다. 8. 웹 브라우저는 화면에 웹 페이지를 출력한다. 웹 클라이언트 웹 클라이언트란? ㆍ 웹 클라이언트는 웹 서버에 자료를 요청하기 위해 http를 사용하는 프로그램이다. ㆍ..
-
Spring Security JWT - JWT를 통한 인증Framework & Library/Spring Security 2021. 10. 10. 19:42
JWT 검증 JwtAuthorizationFilter 클래스 생성 public class JwtAuthorizationFilter extends BasicAuthenticationFilter { private UserRepository userRepository; public JwtAuthorizationFilter(AuthenticationManager authenticationManager, UserRepository userRepository) { super(authenticationManager); this.userRepository = userRepository; } @Override /** 인증이나 권한이 필요한 주소요청이 있을 때 실행되는 메서드 */ protected void doFilte..
-
Spring Security JWT - JWT 생성 후 응답Framework & Library/Spring Security 2021. 10. 10. 01:25
JwtAuthenticationFilter 클래스 수정 ㆍ JwtAuthenticationFilter 클래스의 successfulAuthentication() 메서드를 위 사진과 같이 수정한다. ㆍ successfulAuthentication() 메서드는 attemptAuthentication() 메서드가 실행되고 인증이 정상적으로 되었으면 자동으로 실행되는 메서드이다. ㆍ attemptAuthentication() 메서드에서 JWT를 생성하고 Header에 JWT 정보를 담아 클라이언트 측에 응답을 하는 방식이다. 테스트 로그인 요청 ㆍ username의 값을 "qlsdud0604"로 password의 값을 "1234"로 지정한 후 JSON 형태로 로그인 요청을 한다. Header 정보 확인 ㆍ 로그인..
-
Spring Security JWT - 로그인 인증Framework & Library/Spring Security 2021. 10. 9. 16:35
JwtAuthenticationFilter 클래스 수정 ㆍ 로그인인 인증을 수행하기 위해 JwtAuthenticationFilter 클래스의 attemptAuthentication() 메서드를 위 코드와 같이 수정한다. ㆍ 첫 번째 부분에서 전달받은 JSON 데이터를 파싱 해서 User 객체로 만든다. ㆍ 두 번째 부분에서는 파싱 된 User 객체의 username과 password를 이용해서 토큰을 생성한다. ㆍ 생성된 토큰은 로그인 인증을 위해 사용되는 토큰이다. ㆍ 세 번째 부분에서는 생성한 토큰을 이용해 AuthenticationManager 객체가 로그인을 시도한다. ㆍ 이때, PrincipalDetailsService의 loadUserByUsername() 메서드가 자동으로 실행되고, load..
-
Spring Security JWT - 회원가입Framework & Library/Spring Security 2021. 10. 9. 15:42
SpringConfig 클래스 수정 ㆍ SecurityConfig 클래스에 위 사진에 표시된 코드를 추가한다. ㆍ BCryptPasswordEncoder는 사용자의 패스워드를 암호화해주는 객체이다. ㆍ @Bean 애너테이션을 통해 해당 메서드의 리턴되는 객체를 IoC로 등록해준다. Controller 수정 ㆍ RestApiController 클래스에 회원가입을 수행하는 메서드인 join() 메서드를 추가한다. ㆍ join() 메서드는 User 객체를 전달받고 User 객체의 패스워드를 BCryptPasswordEncoder 객체를 통하여 암호화를 한 후 DB에 저장한다. ㆍ DB에 저장이 완료되면 "회원가입 완료"라는 메시지가 반환된다. 테스트 회원가입 요청 ㆍ 테스트는 Postman을 통해서 진행하였다..