본문 바로가기
반응형

분류 전체보기714

TIL_211009 1. Facts(사실, 객관) - 스프링 시큐리티 authentication 메커니즘 강의 및 정리 2. Feelings(느낌, 주관) 스프링 시큐리티에서 커스터마이징한 필터를 사용하며, 기본적인 필터 설정에 대한 개념과 실습을 했습니다. 특히 Authentication에 있는 정보들의 이름과 역할을 열심히 살펴보았습니다. 시큐리티에는 각 역할과 쓰임새를 가지는 다양한 라이브러리들이 있으므로 잘 이해해 합니다. 간단한 로그인 설정부터 커스터마이징, 인메모리 방식의 계정 조회에서 DB를 이용한 계정 조회까지 토이프로젝트 혹은 실무에 사용하는 방식들이 다양하게 제공되고 있어 상황에 맞게 쓰는것이 중요하다고 생각했습니다. 결국 전체 작동 흐름을 이해하면 어떤 방식을 사용하여 구현하는 것은 쉽겠다는 생각이 듭니.. 2021. 10. 9.
TIL_211008 1. Facts(사실, 객관) - 스프링 시큐리티 간단한 로그인 강의 및 정리 - 스프링 시큐리티, 필터 개요 강의 및 정리 2. Feelings(느낌, 주관) 시큐리티 강의를 듣고 정리하며 공부했습니다. 이전에도 가끔 시큐리티를 공부했지만, 결국 내용을 정리하지 않으면 순간의 기억은 까먹는다는 것을 여실히 깨닫고 이번에는 열심히 기록했습니다. 기본적인 스프링 시큐리티의 인증, 인가 개념부터 내부 필터와 작동방식의 개괄적인 내용을 확인했습니다. 추후 잘 정리된 내용을 바탕으로 다른 사람에게 설명하고 쉽게 알려줄 수 있는 기회가 올 것을 기대합니다. 특히 사진으로 내용을 정리하려고 노력하다보니 간편하게 볼 수 있고 정리를 좀 더 쉽게 할 수 있어서 좋았습니다. 스프링의 한 프로젝트로서 시큐리티 규모가 엄청.. 2021. 10. 8.
authentication 메커니즘 * 인증 ( Authentication ) Authentication은 사이트에서 "통행증" 역할을 한다. Authentication을 구현하는 객체들은 대체로 메서드 이름 맨 뒤에 AuthenticationToken이 붙는다. 그래서 구현체들을 인증토큰이라고 부른다. Credentials : 인증을 위해 필요한 정보(input, 비밀번호) Principal : 인증된 결과, 인증대상(output) Details : 기타 정보, 인증 관련 주변 정보들(ip, session 관련) Authorities : 권한 정보들 (권한을 담당하는 GrantedAuthority를 구현한 객체들을 Authorities에 넣어둔다. ) Authentication 객체는 SecurityContextHolder를 통해 세션이.. 2021. 10. 8.
basic login 과정 @EnableWebSecurity(debug = true) public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests(request -> { request .antMatchers("/").permitAll() .anyRequest().authenticated(); }); } } "/" 이외에 모든 경로는 허용이 안된다. 요청이 오면 인증을 해야 한다. 하지만, 해당 코드에는 오류가 있다. 정적인 web resource에 대해서는 경로를 열어주어야 한다. @Override p.. 2021. 10. 8.
TIL_211007 1. Facts(사실, 객관) - 스프링 시큐리티, 필터 개요 강의 및 정리 - 스프링 시큐리티 authentication 강의 및 정리 2. Feelings(느낌, 주관) 시큐리티 강의를 듣고 정리하며 공부했습니다. 이전에도 가끔 시큐리티를 공부했지만, 결국 내용을 정리하지 않으면 순간의 기억은 까먹는다는 것을 여실히 깨닫고 기록했습니다. 기본적인 스프링 시큐리티의 인증, 인가 개념부터 내부 필터와 작동방식의 개괄적인 내용을 확인했습니다. 추후 잘 정리된 내용을 바탕으로 다른 사람에게 설명하고 쉽게 알려줄 수 있는 기회가 올 것을 기대합니다. 특히 사진으로 내용을 정리하려고 노력하다보니 간편하게 볼 수 있고 정리를 좀 더 쉽게 할 수 있어서 좋았습니다. 스프링의 한 프로젝트로서 시큐리티 규모가 엄청나게.. 2021. 10. 8.
스프링 시큐리티 & 필터 톰캣을 서블릿 컨테이너라고도 불리는데 다수의 서블릿으로 톰캣이 구성되어 있기 때문이다. spring에서 모든 요청은 dispatcherServlet에서 처음 처리를 시작하는데, 그 이전에 filter를 거쳐야 한다. 이 filter들은 chain으로 연결되어 있고, 반드시 모든 요청들은 이 filter를 하나하나씩 다 거쳐야 한다. 이 때 스프링 시큐리티 필터가 작동한다. 경우에 따라서 다양한 필터 정책을 적용할 수 있으며 역할은 시큐리티에서 DelegatingFilterProxy가 한다. 이 필터를 메인 필터에 끼우고, 그 아래에 여러개의 SeurityFilterChain을 등록한다. 각 필터 체인의 적용 경로는 /api/**, /admin/** 등 다양한 정책의 경우를 적용할 수 있다. WebSecu.. 2021. 10. 7.
간단한 로그인 페이지 만들기 스프링 시큐리티는 안전한 로그인을 위해 가장 많이 사용되며, 계정별로 권한을 부여할 때 사용한다. 간단한 방식으로 시큐리티가 적용된 로그인 페이지를 만들어보도록 한다. * 스프링 시큐리티 간단한 계정 설정 application.yml에서 임의의 계정을 추가할 수 있다. 하지만, 1개밖에 추가하지못한다. (다수 계정 설정을 위해서 WebSecurityConfigurerAdapter를 상속받은 클래스가 필요하다.) spring: security: user: name: user1 password: 1111 roles: USER 스프링 시큐리티에서 계정 정보는 크게 name, password, roles 3가지가 필요하다. * 스프링 시큐리티 로그인 정보 확인하기 @RequestMapping("/auth") p.. 2021. 10. 7.
다형성 쿼리 다형성 쿼리를 날리는 JPQL과 SQL을 비교한다. *목차 1. IN절 사용 2. TREAT 사용 1. IN절 사용 String query = "select i from Item i where type(i) IN (Book, Album)"; List items = em.createQuery(query, Item.class).getResultList(); //JPQL select i from Item i where type(i) in (Book, Album); //SQL select i from Item i where i.DTYPE in (Book, Album); Hibernate: /* select i from Item i where type(i) IN ( Book, Album ) */ select it.. 2021. 10. 7.
MERGE INTO(oracle) 오라클 DB를 사용하다보면, 특정 테이블을 수정해야 할 때가 있다. 테이블 수정하려는데, 해당 케이스가 없다면 추가해야되는 상황도 있다. 이처럼 특정 테이블에 UPDATE와 INSERT를 같이하는 경우 ORACLE에서 MERGE INTO를 사용하여 해결할 수 있다. * 테이블, 데이터 생성 CREATE TABLE BEFORE_SCORE ( STUDENT_ID VARCHAR2(100), SCORE NUMBER(5,2) CONSTRAINT PK_BEFORE_SCORE PRIMARY KEY (STUDENT_ID) ) 과거 점수 테이블 BEFORE_SCORE를 생성한다. (현재 점수 테이블 NOW_SCORE도 똑같은 칼럼과 기본키를 가진다.) INSERT INTO BEFORE_SCORE(STUDENT_ID, S.. 2021. 10. 7.
반응형