security

Spring/오류

싱글벙글 스프링 시큐리티, Jwt 토큰을 설정하고 테스트 실행시 에러 발생 Unsatisfied dependency expressed through constructor parameter 0

에러발생 발생원인 분명 서버 실행하고 진행하면 잘 되는데 왜 이러한 에러가 발생할까? Jwt SecretKey를 어떻게 받고있는지 한 번 살펴보겠습니다. 저같은 경우에는 환경변수를 이용해서 key값을 받고있습니다. 그래서 서버가 실행되면 key값이 들어가야 되는데 테스트 코드를 작성하는 곳에는 환경 변수를 세팅하거나 yml이 존재하지 않기 때문에 @Value에서 에러가 발생한 것이였습니다. 해결방법 해결할 수 있는 방법은 2가지가 존재합니다. 첫번째: 환경변수 설정 모든 테스트 환경에 환경변수를 적용하는 방법입니다. 이건 테스트 클래스가 많아질 수록 귀찮고 놓칠 수 있는 부분이기 때문에 비효율적이라고 판단했습니다. 두번째: 테스트 전용 yml 생성 테스트 전용 yml을 생성하는 방법입니다. 이렇게 설정해..

Spring/Security

Spring Security) 싱글벙글 doFilterInternal() method 토큰 검증 후 DB접근에 대한 내 생각

Spring Security에서 토큰 검증 과정 검증 흐름 먼저 제가 작성한 코드가 어떤식으로 검증이 되는지 보겠습니다. 로그인 성공 토큰 생성 로그인 성공 -> 토큰을 생성하는 로직입니다. 토큰 검증 토큰을 검증하는 흐름을 보겠습니다. getUsername() 여기까지 로그인 후 토큰을 생성하고, 그 토큰을 검증하는 과정입니다. 이제부터 이 흐름에 왜 의문을 품었는지더 좋은 방법을 하나 하나 생각한 내용을 적겠습니다. 의문 발생 토이프로젝트를 하다가 받은 리뷰입니다. 인터넷과 강의에있는 내용을 그대로 받아들인 후 토큰 검증 과정을 구현했었는데 이러한 리뷰를 통해 왜 이렇게 해야 되는건지 고민하는 계기가 되었습니다. DB에 접근하지 않아도 User객체를 생성한다거나, 권한 정보만 들고와서 ContextH..

Spring/Security

Spring Security) Spring Boot 3.1.0, Spring 6.1, Spring Security 6.1

Springboot 3.1.0 환경에서 Spring Security로 인증 방식을 구현하던 중 FilterChain 등록 코드에서 deprecated 에러 사인이 등장했다. Spring Security 6.1.0 SpringBoot 3.1.0 버전은 Spring Security 6.1.0 버전을 dependency 한다. 람다 DSL 사용 Lambda DSL은 버전 5.2부터 Spring Security에 있으며 람다를 사용하여 HTTP 보안을 구성할 수 있습니다. HTTP 보안의 람다 구성이 이전 구성 스타일과 어떻게 비교되는지 살펴보겠습니다. 람다를 사용한 구성 (lamda DSL) @Configuration @EnableWebSecurity public class SecurityConfig { @B..

Spring/Security

Spring Security) UserDetailsService에서 비밀번호는 어디에서 검사하는 걸까?

Spring Security의 사용자 비밀번호 검사 스프링 시큐리티 예제를 보며 개발하다 보면 UserDetailsService 인터페이스의 loadUserByUsername(String username)을 구현해서 사용자 정보를 DB에서 조회하고 반환한다. 하지만 비밀번호를 체크하는 코드는 없다. 그래도 잘못된 비밀번호를 입력하면 로그인에 실패한다. 내가 작성한 코드에는 없지만 어디에선가 비밀 번호 체크를 하고 있는 것이다. 비밀 번호는 어디에서 체크할까? DaoAuthenticationProvider AuthenticationManager.authenticate(Authentication)을 호출하면 스프링 시큐리티에 내장된 AuthenticationProvider의 authenticate()메서드가..

초보병일이
'security' 태그의 글 목록