본문 바로가기
Backend - Java Spring/SB 입문_Apple(완)

[Co_App] Spring Basic 복습 - Auth

by VictorMeredith 2024. 9. 1.

1. Spring Security

- 복붙을 통해 session/jwt 구현할 수 있다.

 

2. Spring Security - Thymeleaf 구현 절차

- SecurityConfig.java 생성

모든 페이지 로그인 검사 해제

- FilterChain : 모든 유저의 요청과 서버의 응답 사이에 자동으로 실행해주고 싶은 코드를 담는 곳

- authorize.requestMatchers() : 로그인 검사 여부를 설정한다. (permitAll()을 붙이면 모두 허용)

- 참고) JWT 는 headers 에 직접 넣어서 보내면 CSRF 예방 가능

 

3. Bean 등록

@Bean, @Configuration 애너테이션으로 Bean 등록
생성자 DI 로 사용 가능하다.

 

4. Spring Security를 활용한 로그인 기능

- 로그인 페이지 만들기

- /login , POST, username, password 이런 Attribute 고정으로 맞춰야 한다. (Spring Security)

- 폼으로 로그인한다고 설정

- 이거 FilterChain 부분에 넣으면 됨. form 으로 로그인하겠다는 의미

- 성공, 실패 시 이동할 페이지 url을 적을 수 있다.

- 안적으면 실패 시 기본적으로 /login?error 로 이동한다.

thymeleaf의 문법(파라미터를 가져다가 조건부 렌더링한다.

 

- DB에 있던 유저 정보 꺼내는 코드 작성

user Entity 헷갈리니 다음엔 다른 이름으로 만들자

 

5. 마이페이지 만들어보기

- api 만들기

Authentication 변수로 이것저것 검사 가능
thymeleaf 분기처리 문법

 

6. 로그아웃

- SecurityConfig에 logout url 추가

 

- Controller

 

7. 추가사항

- 세션은 DB에 저장해야한다.

- 추가 설정(유효기간 등)은 application.properties에 넣으면 된다. (검색하자)

- CSRF 기능은 CsrfTokenRepository 하나 Bean으로 등록해주고 -> SecurityConfig에 http.csrf 설정 추가하면 된다. (검색하자)

댓글