728x90 반응형 SMALL Spring boot 프로젝트 기록/3. 인증 백엔드 통합5 패스워드 암호화 마지마긍로 패스워드를 암호화 해보겠습니다. 패스워드 암호화 부분은 스프링 시큐리티가 제공하는 BCryptPasswordEncoder의 사용을 위해 구현을 잠시 미뤄뒀었습니다. 우리가 UserController와 UserService 를 구현할 당시에는 스프링 시큐리티 디펜던시를 설정하지 않았었기 때문입니다. 이제 Userservice를 수정해줍니다. 기존의 getByCredentials 매서드를 수정해주어야합니다. public UserEntity getByCredentials(final String email, final String password, final PasswordEncoder passwordEncoder) { final UserEntity originalUser = userRepositor.. 2021. 12. 13. TodoController에서 인증된 사용자 사용하기 지난 글들을 작성할때 , Todo 리스트에 대한 CRUD 기능을 구현할때 고정적인 아이디를 사용했습니다! 이땐 로그인 기능이 구현되지 않았어서 고정적으로 사용했었습니다. 그리고 이 기능을 아직도 사용하고있었습니다. 이제 이 메서드들이 인증된 사용자 아이디를 사용할 수 있도록 각 메서드에 userid라는 매개변수를 추가해줍시다! 우선 최초 url 매핑을 담당하는 SO부분을 수정시켜줍시다. @AuthenticationPrincipal String userId 해당 어노테이션을 이용해서 로그인되어있는 권한을 가져오는겁니다. 그리고 컨트롤러 오브젝트 단에서도 아이디를 매개변수로 받아서 해당 아이디로 셋팅하게됩니다. 그런데말입니다... userId는 도대체 누가 어떻게 String 인것을 알고 넘겨주는 걸까요? .. 2021. 12. 12. JWT 를 이용한 인증 구현 2021.12.11 - JSON 웹 토큰 JSON 웹 토큰 서버에서 전자 서명된 토큰을 이용하면 인즈엥 따른 스케일 문제를 해결할 수 가 있습니다! 우리는 전자 서명된 토큰을 이용해 스케일 문제를 해결합니다.ㅎㅎ 그리고 이렇게 전자 서명된 토큰 uno-kim.tistory.com 구현을 위해 일단 JWT 관련 라이브러리를 디펜던시에 추가해야합니다.! implementation 'org.springframework.boot:spring-boot-starter-security' 빌드.그래들에 추가해줍시다! OncePerRequestFilter 라는 클래스를 상속해 필터를 생성해야합니다. 위 클래스는 한 요청당 한번만 실행됩니다. 따라서 한번만 인증하면 되는 우리에게 맞는 필터입니다! 위 클래스를 상속받는 J.. 2021. 12. 12. 스프링 시큐리티 통합 -1 구현 내용 (시큐리티 통합 주제로) 1. JWT 인증 로직 구현 2. 패스워드 암호화 로직 구현 1. JWT 생성 및 반환 구현 사용자 정보를 바탕으로 헤더와 페이로드를 작성하고 전자 서명한 후 토큰을 리턴하도록 해야합니당 구현을 위해 JWT 관련 라이브러리를 디펜던시에 추가해야해요! build.gradle의 dependencies 부분에 jjwt 라이브러를 추가해줍시닷! // https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' 이제 보안을 제대로 구현하기위해 security 패키지를 만듭시다!! 이 패키즈는 인증과 인가를 위한 .. 2021. 12. 8. REST security를 구현해보자! 당분간 User 레이어를 구현할것입니다!!! UserEntity 를 구현한다. UserRepository 구현 UserService 구현 UserDTO/UserController 구현 사용자는 id, username, email, password로 로그인을하고 구성되어있습니다.! 그래서 해당 정보들이 들어가는 Entity를 구현해봅시다 package com.unoSpringBoot.study.model; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import org.hibernate.annotations.G.. 2021. 12. 2. 이전 1 다음 728x90 반응형 LIST