Spring6 [spring] There is no PasswordEncoder mapped for the id "null" 에러 해결 스프링 시큐리티를 사용해서 로그인을 구현했었는데, 회원 정보 수정이 일어난 후에 재로그인에 실패하면서 There is no PasswordEncoder mapped for the id "null" 가 발생했다. 원인 스프링 시큐리티에서 비밀번호를 저장할 때 5 버전이상부터는 암호화 과정이 필요하다고 한다! 회원가입할 때는 암호화하여 저장을 했었는데, update과정에서 password를 그대로 저장했기에 다시 로그인 할 때 에러가 발생했다. 해결 방법 update 메서드에서 비밀번호 변경 시 암호화하여 저장되도록 수정한다. 암호화하여 저장되도록 아래와 같이 수정 2023. 7. 19. [spring] WebSecurityConfigurerAdapter Deprecated 해결 지금 하는 프로젝트에서 원래는 WebSecurityConfigurerAdapter를 상속받아서 스프링시큐리티를 사용할 계획이었는데, WebSecurityConfigurerAdapter Deprecated가 되었다고 나와서 변경할 필요가 있었다. 스프링 시큐리티 5.7( 스프링 부트 2.7.x 이후부터는 모두 5.7을 기본 포함)부터는 WebSecurityConfigurerAdapter 대신 SecurityFilterChain 빈을 주입하는 방식으로 변경되었다고 한다. 변경전 @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Bean public static Passwo.. 2023. 6. 20. [spring] 스프링 클라우드 컨피그 서버 구축 중 에러 Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.7.1:run 해결 스프링 마이크로서비스 코딩 공작소 실습을 해보던 도중 오류가 발생했다. 스프링 클라우드 컨피그 서버 구축을 위한 파일을 모두 작성한 후 실행했더니 Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.7.1:run 에러가 발생했다. 오류가 무엇인지 찾는 데 생각보다 오래걸렸다. 원인이 궁금했는데, 테스트 실패를 무시하고 빌드할 수 있게 하는 방법들 위주로만 검색이 되었다. 그래도 계속 찾은 결과 원인을 알아내는데 성공했다! 원인 스프링부트 2.4.0 이후에는 bootstrap을 사용하지 않는데, 내 프로젝트의 스프링부트 버전은 2.7.1이라서 생긴 문제이다. 스프링 부트 2.4.0 이전에는 bootstrap.yml을 사용하면.. 2023. 5. 23. [spring] ./gradlew test 오류 Execution failed for task ':test'. There were failing tests. 해결 Execution failed for task ':compileJava'.에러 해결을 하고 다시 ./gradlew test를 실행했더니 이 오류는 해결되고 다른 오류가 발생했다. Execution failed for task ':test'. > There were failing tests. See the report at: file:///home/ec2-user/app/step1/springboot-webservice/build/reports/tests/test/index.html 테스트 폴더에 있던 테스트함수들이 실패한 상황이었다. 원인 원인을 찾아보니 로컬에서 테스트할 때는 인텔리제이가 test폴더에 application.properties이 없다면 main폴더에 있는 application.prope.. 2023. 3. 23. [spring] ./gradlew test 오류 Execution failed for task ':compileJava'. 에러 해결 스프링 부트와 AWS로 혼자 구현하는 웹서비스 8장을 공부하면서 EC2에 깃허브 프로젝크 클론을 진행하고 테스트를 실행하는 도중 FAILURE: Build failed with an exception. Execution failed for task ':compileJava'.에러가 발생했다. 원인 프로젝트에 사용하는 버전과 실제 자바 버전이 맞지 않아서 발생했다. 책에서는 jdk 1.8을 사용하는 전제로 설명했고, 나는 jdk11을 사용하는 상황이었는데, build.gradle에 명시한 자바 버전을 책에 맞춰 작성해두어서 발생했다. 해결 방법 build.gradle에서 명시한 자바 버전이 환경변수 JAVA_HOME이 가리키는 자바 버전과 일치하는지 확인 gradlew는 JAVA_HOME을 보고 자바가상머.. 2023. 3. 23. [spring] 스프링 부트 구글 로그인 연동 시 구글 계정 이름이 아닌 로컬 계정이 노출되는 이유 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 5장에서 구글 로그인을 연동하고 결과를 테스트 해보니 구글 계정 이름이 아닌 로컬 계정 이름이 노출되었다. 원인 사용자 이름을 화면에 노출하기 위해 'userName'을 사용했는데, 이는 윈도우에서 'userName'은 pc의 userName을 의미한다. 그래서 pc의 사용자이름(로컬 계정 이름)이 출력된다. 해결방법 'usernname' 이 아닌 다른 이름을 사용한다. ex) name 등 - index.mustache 'userName'을 'name'으로 변경 - IndexController.java 'userName'을 'name'으로 변경 변경 후 구글 로그인하면 pc 사용자 이름이 아닌 구글 계정 이름이 화면에 노출된다. 2023. 3. 6. 이전 1 다음