0611 - 트랜잭션 옵션, 인증과 권한

정연진·2021년 6월 11일

트랜잭션

트랜잭션 전파 옵션

한 트랜잭션 안에서 또 트랜잭션이 일어날 때

-> dao.insert안에서
트랜잭션 또 일어남

이럴 경우 트랜잭션이 전파되어 유지된다.

REQUIRED : 밖에서 물고온 트랜잭션을 유지하고, 밖에서 물고온게 없더라도 스스로 트랜잭션을 지원한다.(기본옵션, 젤 만이 씀..)
기본 옵션은 생략가능

트랜잭션 고립도 옵션

@Transactional(Isolation ..)

  • READ UNCOMMOTTED : dirty reads 허용
    ( dirty read : 롤백될지도 모르는 데이터 읽는것)
  • READ COMMITTED : 커밋한것만 읽음. dirty reads X, non-repeatable read phenomenon(작업중인레코드가 삭제,수정) 일어남
  • REPEATABLE READ :기본옵션. dirty reads X, phenomenon X
    작업하고 있는 레코드에 lock
  • SERIALIZABLE : 테이블 통째로 lock

인증과 권한

스프링 없이는..

if(너 로그인 했니)
if(너 관리자니)
return...
위 작업을 매소드 마다 넣어줘야함

라이브러리 추가

프로젝트 오른쪽버튼 -> Spring -> Add starters

WebSecurityConfig 설정

WebSecurityConfig 클래스를 만들어준다.
메소드 두개를 쓸것이다.

configure(HttpSecurity http)

url요청이 들어오면 인터럽트

못들어가게 막는 작업.

막고, 로그인페이지로 돌아갓!로그인하구와..

configure(AuthenticationManagerBuilder auth)

사용자 인증정보를 메모리에

패스워드 암호화(손실변환) 해야함(키가 없어서 원문을 찾을수없음)

사용자가 패스워드(111) 입력하면 암호화($45#34535)해서 비교
암호화 인코더 추가.

데이터베이스에서 사용자 정보 가져오기

profile
열공해욧

0개의 댓글