본문 바로가기

분류 전체보기202

JWT TOKEN으로 하는 인증의 의미를 먼저, 좀 더 자세히 알아보자 . COOKIE의 탈취가, 개인정보의 탈취를 의미하진 않는다. (COOKIE 만으로 사용자임을 인증할 수 없다) 하지만, 서버에 COOKIE를 저장하고 생성하는 등 번거롭고 공간이 추가로 필요하다. TOKEN으로 인증하는 방법 : USER가 별도의 서버1에서 TOKEN을 생성받고, 해당 USER는 서버 2에 개인정보와 TOKEN을 같이 전송한다. COOKIE 저럼 동일한 서버가 아니기 때문에, TOKEN에는 개인 정보가 어느정도 들어있다. (USERNAME등) 토큰은, 저장소가 별도로 필요없는 장점이 있지만, 세션을 저장하지 않아 회수가 어렵다. (COOKIE보다 안전한 방식이라고 정의할 순 없다) JWT란, 토큰 방식중 가장 잘 알려진 방.. 2024. 1. 11.
Spring Security Test security의 test는 다른 부분이 존재한다. user가 로그인을 가정하고 test해야 하는 경우가 많은데, 이때 인증을 받지 않고 test를 한다면 동작 자체가 금지된다. Spring-security-test로 Mock user를 생성, 인증시켜놓고 test를 진행한다. mockmvc를 통해, SpringSecurity를 적용시킬 수 있다. @WithMockUser MockUser를 생성 후 , 인증을 만든다. userdetails를 직접 구현할때는 (Custom User)가 있는 경우에는, 에러가 발생할 수 있음에 주의하자 그 이유는 withmock user의 user는 userdetails의 user이고, custom user와 다른 User이기 때문에. 대부분의 경우에 동작하며 , 훨씬 간단.. 2024. 1. 11.
Spring Security Config spring security의 특정 filter를 disable 하는 방법. HTTPSECURITY.HTTPBASIC().DISABLE() **허나.. SPRING SECURITY 6부터 해당 방식도 변경되었다. 이는 spring security 홈페이지를 참고하자. 로그인 loginpage는 root 경로의 /login, 기본 성공시 /로 이동, 해당 로그인은 모두에게 허용된다는 의미를 지닌다. 로그아웃 http .logout((logout) -> logout.deleteCookies("remove") .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .logoutSuccessUrl("/") ); 로그아웃 요청을 받으면, 해당 페이지로 이동한다... 2024. 1. 11.
Spring Security의 핵심 , SECURITY Filter SECURITY FILTER란? 개발자가 별도로 설정 가능한, 스프링의 핵심인 확장성을 적용시키는 개념이다. 이와 같이, 모든 FITLER들은 FILTER를 구현해야한다. 들어오고, 나오는 것을 FILTERING하는 것을 SECURITY FILTER라고 한다. 모든 FILTER의 핵심 기능은 doFILTER안에 있다. REQUEST -> |필터| -> CONTROLLER -> |필터| -> RESPONSE와 같은 구조 해당 과정을 디버깅하면, WEBPROXYFILTER부터 기타 등등 FILTER(총 13개가 나왔다) 들이 모두 작동. FILTER와 FILTER간에, 사용자 설정 FILTER를 삽입할 수 있다. 필터의 예시들을 보자 1. SECURITYCONTEXTPERSISTENCEFILTER는 , 보통.. 2024. 1. 11.
Spring Security 구조와 내부 내부 구조란 ? SecurityContextHolder 안에, SecurityContext 안에 Authentication 안에 Principal과 GrantAuthority가 있는 구조 SecurityContextHolder는 SecurityContext를 제공, 해당 메소드를 지원 . SecurityContext는 접근 주체와 인증에 대한 정보, 즉 인증을 담고 있다 . Authentication에는 인증 이후 해당 인증을 저장. Principal은 User의 정보를 제공한다. 대부분 Principal로 userdetails를 반환 GrantAuthority는 User의 Role을 붙인다. 주로 ROLE_USER,ROLE_ADMIN등을 사용. 인가에서 사용한다 . 2개의 권한을 동시에 가질 수 있다... 2024. 1. 11.
Stack, Queue, Deque Stack은 LIFO QUEUE는 FIFO 기억하자! 백준 28278번 해당 코드. sys.stdin을 사용하는것이 굉장히 중요하다. 기억할점 pop은 변수로 받아서 사용해야 한다. (print(answerlist.pop))시 이상한 수가 나온다 . 파이썬은 stack이나 queue가 따로 없다. 파이썬의 pop은 가장 마지막 애를 제거한다 (LIFO) 즉, STACK이다파이썬의 POP(0)는, 가장 처음 애를 제거한다 (FIFO)즉, QUEUE이다. 백준 4949번. import sys #LIFO STACK ! while True : a = sys.stdin.readline().rstrip() stack = [] if a == "." : break for i in a : if i == '[' or i .. 2024. 1. 11.
3주차 - Kubernetes 설계 목표: 단순한 완료 보다는 학습 이후 개념의 확장과 추가에 이해를 응용하자 . 어떠한 가상머신에도 동일하게 관리되고 사용되어야 한다. 명령어 set들(script)를 활용할 수도 있다. Kubernetes는 스스로 monitoring하고 관리를 처리한다. (OpenStack의 , 사용자에게 monitoring과 처리의 전반을 맡기는 개념과는 반대의 개념이다. ) EX) WORK NODE에서 CONTAINER X를 NODE B에서 작업하라는 명령. 만약에 WORK NODE에서 명령을 내린다면, NODE B의 장애가 생겼을때 USER가 직접 이를 해결해야 한다. 즉, KUBERNES의 세부적인 명령을 내리지 않고 원하는 상태만을 서술하고 이후 기능을 KUBERNETES가 진행해주는 식의 설계를 식으로 설계하.. 2024. 1. 10.
Configuration으로 기타 설정 password encoder를 bean으로 등록하는 config **spring security 6에 오면서 사용불가화된 어노테이션ㅇ ㅣ굉장히 많다. 위는 , 그 예시중 하나이다. Spring security 6 부터는 아래 사진대로 작성하자. view controller의 설정. /home으로 가는것을 index로 명명하여 , 명명상의 오류가 발생하지 않게 유도 application properties의 jpa = true를 통하여 이를 해결할 수도 있다. (jpaauditing을 가능하게 하는 config 이다) 2024. 1. 10.
Thymeleaf 상세부 서버사이드 template engine . clinet가 동적으로 그리는 방식이 아니고, server가 모든 html을 다 구해서 이미 template(앞에서 배운 듯이, 여러가지 식을 다 작성해놓고 , 정리해놓고 이를 직접 구현해서 해당 template에 넣고 전달. ) 바로 브라우저 확인 가능. 1. 변수 값 불러오기 ex) 당신의 이름은 홍길동(이는 기본 값이 된다) 가 된다. 2. 변수 값 지정도 가능하다 와 같이 사용할 수도 있다. ++ 타임리프에서도 조건문을 제공한다 age가 10 미만일시 보입니다 layout에 따라 분할될때는 를 활용하여 분리한다. 타임리프와 spring security의 호환성을 보여주는 부분. 인증과 인가의 상태를 보고 보여줄 페이지를 다르게 할 수 있음. role-ba.. 2024. 1. 8.
개인 보안 노트 서비스 프로젝트 목적: 해당 목적이, 기능과 실제 사용자의 요구보단 spring secuirty의 필요 상황을 경험하고 구현에 있음에 유의하자. 프로젝트 요구사항 : 1. USER는 본인의 게시글을 저장,삭제,SELECT 가능 (본인 게시글에 대한 CURD기능) 2. 다른 USER의 게시글은 볼 수 없다. 3. ADMIN은, 다른 USER들의 게시글 제목 리스트만 볼 수 있다. 4. ADMIN만 공지사항을 작성가능하고, USER들은 이를 볼 수(만) 있다. API 요청 문서는, SPRING SECURITY를 활용하기 위한 목적의 PROJECT이기 때문에 보류 하도록 한다. 사용 스펙 WEBMVC 웹 프레임 워크 LOMBOK - GETTER SETTER등의 간단하게 코드 작성을 위함 Thymeleaf (간단 한 .. 2024. 1. 8.