[스프링부트] 스프링 시큐리티로 회원가입/로그인하기 (1021)

2022. 10. 21. 06:18Web Developer/SpringBoot/JPA

    오늘은 스프링 시큐리티를 이용한 회원가입/로그인을 배웠다.

     

    dependency 추가만으로도 로그인 페이지를 제공한다..

     

    로그아웃 페이지도 제공해준다. localhost/logout으로 접근 가능.

     

    인증 필요 없는 경우: 상품 상세 페이지 조회/메인페이지 조회

    인증 필요한 경우: 상품 주문/취소

    관리자 권한이 필요한 경우: 상품 등록/삭제

     

    인증

    작업 수행 가능 주체인지 확인하는 것. '로그인'

     

    인가

    인증 이후에 일어나며, URL 접근시 해당 URL에 접근이 인가된 회원인지를 검사함

    '유저 중 admin'

     

     

    수정시 Dto, 해당 Entity 모두 수정해야 함

     

    책에 수록된 각종 Test 코드 관련

    MemberServiceTest를 테스트를 test 디렉토리가 아니라 service 디렉토리에 작성한 이유가 있나 했는데 그냥 표기 오류인 것 같다. 백견불여일타 카페에서 다른 분이 4장 문의하신 걸 봤는데 그분도 test 폴더에 했더라.

    인텔리제이로 수행하니 @SpringBootTest 등이 먹히지 않고 test로 옮기라고 해서 옮겼다.

    + 이후 테스트도 그냥 com.shop.entity.MemberTest.java 와 같은 식으로 되어 있다. 표기 오류 확실.

     

    CSRF 오류(Cannot render error page for request [/members/new] and exception [An error happened during template parsing (template: "class path resource [templates/member/memberForm.html]")] as the response has already been committed. As a result, the response may have the wrong status code.) 해결하고 나니 에러는 없는데 부트스트랩 적용이 안 됐다. 왜지 하고 보니까 해당 HTML 페이지 <html> 태그에 layout:decorate="~{layouts/layout1}" 부분이 빠져 있었다.

     

    추가하니 정상 동작한다.

    맨 위로