묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Redis만 사용하면 인증 상태 영속이 되지 않습니다..!
안녕하세요 구버전에 이어 신버전 강의도 출시해주셔서 감사합니다! 구버전 커뮤니티에 질문올렸었는데요~이번 강의를 봐도 해결이 되지않아서 질문 올려봅니답..!직접 spring security 메인테이너나 컨트리뷰터들한테도 물어봤는데, 제가 제대로 질문을 못해서인지 해결을 못했는데요. 시큐리티 + formlogin + Redis를 활용해서 인증방식을 구현했습니다. 아래 코드로 인증 객체를 꺼낼때 문제가 발생합니다. @ResponseStatus(HttpStatus.OK) @GetMapping("/test") public void test() { SecurityContextHolderStrategy contextHolderStrategy = SecurityContextHolder.getContextHolderStrategy(); System.out.println(">> contextHolderStrategy : " + contextHolderStrategy); // org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@7e1fbf12 SecurityContext context = contextHolderStrategy.getContext(); System.out.println(">> context : " + context); // SecurityContextImpl [Authentication=AnonymousAuthenticationToken Authentication authentication = context.getAuthentication(); System.out.println(">> authentication : " + authentication); // AnonymousAuthenticationToken MemberContext memberContext = (MemberContext) authentication.getPrincipal(); System.out.println(">> memberContext : " + memberContext); // ClassCastException String username = memberContext.getUsername(); System.out.println(">> username : " + username); } Redis를 사용하지 않고 tomcat에 저장할 경우 session을 통해서 인증 객체를 잘 받아오는데,>> contextHolderStrategy : org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@54f61d2b >> context : SecurityContextImpl [Authentication=UsernamePasswordAuthenticationToken [Principal=com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=A220DB3D8904393F7D9831276564566A], Granted Authorities=[ROLE_ADMIN]]] >> authentication : UsernamePasswordAuthenticationToken [Principal=com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]], Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=A220DB3D8904393F7D9831276564566A], Granted Authorities=[ROLE_ADMIN]] >> memberContext : com.spring.security.config.security.service.MemberContext [Username=sejinpark@email.com, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[ROLE_ADMIN]] >> username : sejinpark@email.com Redis만 사용하면 인증 완료 후 인증 후 요청에서 Anonymous로 변경됩니다.>> contextHolderStrategy : org.springframework.security.core.context.ThreadLocalSecurityContextHolderStrategy@577154a7 >> context : SecurityContextImpl [Authentication=AnonymousAuthenticationToken [Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=16bec162-3ad3-459d-8b97-bf3d6f1de226], Granted Authorities=[ROLE_ANONYMOUS]]] >> authentication : AnonymousAuthenticationToken [Principal=anonymousUser, Credentials=[PROTECTED], Authenticated=true, Details=WebAuthenticationDetails [RemoteIpAddress=0:0:0:0:0:0:0:1, SessionId=16bec162-3ad3-459d-8b97-bf3d6f1de226], Granted Authorities=[ROLE_ANONYMOUS]] 2024-04-17T07:49:13.061+09:00 ERROR 84540 --- [nio-8080-exec-6] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.ClassCastException: class java.lang.String cannot be cast to class com.spring.security.config.security.service.MemberContext (java.lang.String is in module java.base of loader 'bootstrap'; com.spring.security.config.security.service.MemberContext is in unnamed module of loader 'app')] with root cause java.lang.ClassCastException: class java.lang.String cannot be cast to class com.spring.security.config.security.service.MemberContext (java.lang.String is in module java.base of loader 'bootstrap'; com.spring.security.config.security.service.MemberContext is in unnamed module of loader 'app') at com.spring.security.controller.MemberController.test(MemberController.java:43) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]Redis 내부에 인증객체가 저장되어 있는것 까지 확인했는데요. 혹시 SecurityFilterChain에 Redis관련 저장소를 별도로 설정을 해줘야 하는지, 어떤 부분을 확인해야하는지 여쭙고 싶습니다. Redis를 사용하는데 계속 HttpSessionSecurityContextRepository에서 시큐리티 컨텍스트를 찾을 수 없다고 나옵니답.2024-04-17T17:05:01.251+09:00 WARN 30066 --- [nio-8080-exec-1] w.c.HttpSessionSecurityContextRepository : SPRING_SECURITY_CONTEXT did not contain a SecurityContext but contained: '{authentication={authorities=[{authority=ROLE_ADMIN}], details={remoteAddress=0:0:0:0:0:0:0:1, sessionId=null}, authenticated=true, principal={password=null, username=sejinpark@email.com, authorities=[{authority=ROLE_ADMIN}], accountNonExpired=true, accountNonLocked=true, credentialsNonExpired=true, enabled=true}, credentials=null, name=sejinpark@email.com}}'; are you improperly modifying the HttpSession directly (you should always use SecurityContextHolder) or using the HttpSession attribute reserved for this class? 우선 테스트용으로 SecurityFilterChain에서 아래처럼 기존 버전 처럼 사용해서 인증 상태를 무조건 저장할 수 있도록 해놨습니다.커스텀 인증필터를 사용 안하고, SecurityContextPersistanceFilter를 사용하도록했습니다.securityContext.requireExplicitSave(false);테스트용으로 만든 레포지토리 링크 첨부합니다!https://github.com/codesejin/security-test
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
갑자기 코드가 실행이 안됩니다. Edit Configuration
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]View 환결설정 강의를 시청하는중 아무런 문제없이 코드들은 잘 작성하고있엇습니다. dev tools 추가해서 recompile로 간편하게 해보는걸 하는중 윈도우 단축기는 crtl shift f9이라고 나왔고 그래서 몇번 계속 해보던중 갑자기 코드가 실행이 안되기 시작했습니다. 우선 HelloController, JpaShopApplication 마크가 클래스에서 자바 커피 모양으로 바뀌면서 .java가 붙엇고 실행하려고하면 Edit Configuration 이 나오면서 사진과 같은 창이 나오고 Cannot snapshot C:\Users\juny2\OneDrive\Desktop\study\jpashop\jpashop\build\resources\main\static\index.html: not a regular file 이라는 경고문이 나옵니다. build.gradle 다시 세팅햇더니 다시 클래스 마크로 돌아오긴했는데 여전히 같은 경고문 , Edit configuration이 뜨면서 실행이 안됩니다. (수정) 저기 Edit Config 설정하고 다른 글에서 snapshot 에러뜨면 Onedrive 밖으로 프로젝트 옮겨보라고 하셔서 프로젝트 옮겻고 정상적으로 돌아는가네요. 근데 문제는 index.html파일이 없는 상태에서 이렇게 초기화면에 뭐가 주르륵 뜨는데 어떻게 해결하는지 모르겟습니다. ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
크롬 주소입력창 자동으로 대문자 변경
안녕하세요, View 환경설정을 수강하고 있습니다.Controller에서 hello 부분 작성하고 있는데요. 주소창에 localhost:8080/hello라고 검색해도 자동으로 localhost:8080/Hello 로 검색이 됩니다. 이 부분 때문에 계속 에러 페이지 떠서, GetMapping부분을 "Hello"로 바꿔서 실행하니까 데이터는 출력이 잘 됩니다. 다만, 강사님이 작성하신대로 localhost:8080/hello을 검색했을때, 화면이 잘 나오게 하고 싶습니다. 자동으로 변환하는걸 막을 수는 없을까요 ㅠㅠ?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findAny() 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]섹션3 회원 도메인과 리포지토리 만들기 강의 중 MemoryMemberRepository.java의 findByName 코드에 대해 질문 있습니다.@Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); }해당 코드에서 findAny()는 하나라도 찾으면 반환한다고 설명해주셨는데 그럼 같은 이름의 서로 다른 회원이 여러 명 있어도 루프를 돌리면서 가장 먼저 찾은 한 명의 회원만 반환하는 건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring boot 초기 설치시 index파일
안녕하세요, spring boot를 처음에 설치하면 index.html이 없고 localhost:8080 으로 가면 error 문구가 적혀있는 화면이 출력됩니다. 개발자도구에 들어가서 보니까 해당 부분이 index이라고 되어있던데 실제로 스프링 부트에서 찾아보니까 해당 내용은 찾을 수가 없었습니다. 스프링부트에서 프로젝트를 생성한 후 임시로 index.html 파일을 생성해준것인가요?!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 db 설치 후 테이블 생성에서 오류
어떤게 문제 일까요.....
-
미해결[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
직접 생성하지 않은 주소가 생성되어 있습니다.
이 사진처럼"/jpa/users/{id}/posts"가 아닌"/users/{id}/posts"로도 접속이 됩니다.또, "localhost:8088/posts/{postId}" 도 생성되어 있던데이런 것들은 어떤 과정으로 생성된 것인가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
main함수 실행 시 무한 로딩이 걸립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.처음에 spring boot세팅하고 JpashpApplcation의 메인 함수를 실행하면 강의 영상과 달리 로딩 버튼이 뜨는데 계속 기다려도 사라지지 않습니다. 그리고 중간에 그냥 stop하면 Execution failed for task ':JpashopApplication.main()'.> Build cancelled while executing task ':JpashopApplication.main()'* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.7/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 1m 4s3 actionable tasks: 1 executed, 2 up-to-date 이렇게 뜨네요. 하지만 localhost:8080은 정상 실행되는데 문제 없는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
ec2서버에서 user예약어 관련 오류이신분
현제 45강까지 완료했고구글링해서 user라는 키워드가 현제 제가 쓰고있는 버전에서는 예약어이기때문에 사용아 안된다는것까지 인지했습니다.그래서 yml에 dev에 해당하는 url에 NON_KEYWORDS=USER까지 입력했고User class에 @Table(name ="USER")까지 적용해서git을 이용해서 ec2서버에 적용했지만 동일한 오류가 발생합니다.2일정도를 해결하려했는데 안되어서 질문 남깁니다.저의 github 는 https://github.com/Jo-Jun-Yeong/library-app입니다.그리고 제가 사용하는 hc2 ip는54.180.104.239입니다 다른 인프런에 답글달아주신 글도 봤지만user가 예약어이니 nonkeyword적용해라 이상의 해결을 못봤습니다..///////////////////////////////////////////라고 질문하려했는데마지막으로 ./gradlew build가 적용되지않아서 그런거지않을까? 해서 ./gradlew clean 후 build했더니 적용되었습니다.특히 User.class에 @Table(name="user")적용을 해야 하는것 같습니다. 저처럼 2틀동안 삽질하지 않으셨으면 좋겟네요
-
미해결실전! 스프링 데이터 JPA
스프링 부트 3.x버전은 쿼리가 다르게 나오나요?
slice 설명해주시는 부분인 16:30 부분에 쿼리가 저는 아래와 같이 나오는데 하이버네이트6 버전이여서 다르게 나오는 걸까요?selectm1_0.member_id,m1_0.age,m1_0.team_id,m1_0.usernamefrommember m1_0wherem1_0.age=?order bym1_0.username descoffset? rowsfetchfirst ? rows onlyList로 테스트 하는 경우도(18:57) 아래와 같이 다르게 나옵니다.selectm1_0.member_id,m1_0.age,m1_0.team_id,m1_0.usernamefrommember m1_0wherem1_0.age=?order bym1_0.username descoffset? rowsfetchfirst ? rows only
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 mvc 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]스프링 입문 강의 섹션2. MVC와 템플릿 엔진 강의 중 @RequestParam의 required 기본값은 true이고, false로 설정하고 싶으면 @RequestParam(value = "name", required=false)와 같이 수정하면 된다고 하셨는데, required값이 false이면 강의의 예제와 무슨 차이인건가요??required값을 false로 설정하고 실행해봐도 여전히 localhost:8080/hello-mvc로 실행하면 오류가 발생하고, localhost:8080/hello-mvc?name=spring!과 같이 실행해야 하던데 required값이 true인 경우와 false인 경우 무슨 차이인지 궁금합니다.
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
RestaurantApi 컨트롤러 개발 질문
안녕하세요 쥬쥬님 RestaurantApi 컨트롤러 개발 시 프론트로부터 파라미터를 받고 서비스로 바로 넘겨주셨는데 현업이나 일반적으로 보통 컨트롤러에서 파라미터를 받으면 그대로 서비스 단으로 넘겨주는지 궁금합니다!
-
미해결쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
@Transactional 질문 있습니다!
안녕하세요@Transactional 어노테이션을 클래스에다가 붙이면 안에 있는 메서드에 전부 적용되는 것으로 알고 있는데쥬쥬님께서는 메서드 하나하나에 적용을 하시더라구요 혹시 메서드에 하나하나 달아주는 이유를 알 수 있을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 통합 테스트
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WARNING: A Java agent has been loaded dynamically (C:\Users\dlfnx\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.12\be4984cb6fd1ef1d11f218a648889dfda44b8a15\byte-buddy-agent-1.14.12.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended https://drive.google.com/file/d/1DZgTN4_woYB6PZGeJvSiUOLJ5TB8VCq9/view?usp=drive_link 코드 오류 난 것이 있는지 확인해 봤는데 제 눈에는 잘 보이지 않습니다.. 혹시 왜 오류가 난 것인지 알 수 있을까요?
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
질문이 있습니다.
안녕하세요미션이 재밌어서 이것저것 해보고 있는데요진행에는 큰 문제가 없으나 더 좋은 방법이 있는지 여쭤보려고 합니다. Thread 실습미션2: synchronized 예약어를 사용하지 않고 Thread safe하게 구성한다. 간단하게 테스트를 성공시키기 위해서 ReentrantLock을 이용했습니다.이 부분에는 정답이 없겠지만 다른 방안이 있는지 궁금합니다.(volatile을 이용해보려고 했지만 잘 안되더라구요 😅) 웹 성능 테스트 letsencrypt 사용했을 때 접근은 되지만,인증서가 올바르지 않는다는 빨간 경고가 발생하면서 한 번 더 클릭을 해야 접근을 할 수 있습니다.이런 이유로 성능 테스트 사이트가 접근하지 못하고 있습니다.관련하여 검색했을 때 '메일이 잘못되었을 때 인증서가 정상적으로 등록되지 않는다' 문구를 봤던 것 같은데 이런 이유일 수 있나요? 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
의존성 주입시 프록시 객체 주입
public MemberController(MemberService memberService) { this.memberService = memberService; System.out.println("memberService : "+memberService.getClass()); } 생성자 주입을 통해 의존성 주입을 하였습니다. memberService는 콘솔창을 통해 프록시 객체인 것을 확인하였습니다. 해당 내용과 관련해서 2가지 질문이 있습니다. Q1) 스프링 빈에 올라가는 것은 모두 프록시 객체가 올라가나요 ?? Q2) 의존성 주입시 프록시 객체가 주입되고 MemberService 의 메소드가 호출되는 경우 실제 MemberService 객체가 호출되나요 ?? 감사합니다 ~!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
<html xmlns:th="http://www.thymeleaf.org"> 인식이 안되는거 같습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]디펜던시에도 들어있는거 같고build.gradle에도 이렇게 되어있습니다.그런데 이러한 현상때문에 프로젝트를 4번이나 따라만들어봤는데 계속해서 생기는데 어떻게 해야하나요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
lombok 인식이 안됩니다
안녕하세요수강시작으로 프로젝트 세팅중에 있는데 롬북 인식이 안되서 문의드립니다 ㅠplugin 설치하였고아래 사진과 같이 dependencies 세팅도 되어있고상단 이미지처럼 체크하고 restart를 아무리해도.....강의 예제 처럼 Hello class에도 main/java 아래 임으로 생성한 class에서도 롬북이 인식이 안됩니다 ㅠ어떻게 해야할까요?
-
미해결코드로 배우는 React with 스프링부트 API서버
장바구니 컨트롤러 처리 @PreAuthorize 부분 오류
@PreAuthorize("(#itemDTO.email == authentication.name)") @PostMapping("/change") public List<CartItemListDTO> changeCart(@RequestBody(required = true) CartItemDTO itemDTO) { log.info("itemDTO : {}", itemDTO); if (itemDTO.getQuantity() <= 0) { return cartService.remove(itemDTO.getCino()); } return cartService.addOrModify(itemDTO); }위코드에서 #ItemDTo 값이 null 설정되는것같습니다.아무리 찿아봐도 원일을 알수없는데 확인좀 부탁드릴수 있을까요? 우선 오류로그는 아래와 같습니다.jakarta.servlet.ServletException: Request processing failed: java.lang.IllegalArgumentException: Failed to evaluate expression '(#itemDTO.email == authentication.name)' at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1022) ~[spring-webmvc-6.1.5.jar:6.1.5] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~[spring-webmvc-6.1.5.jar:6.1.5] Caused by: java.lang.IllegalArgumentException: Failed to evaluate expression '(#itemDTO.email == authentication.name)' Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'email' cannot be found on null at org.springframework.expression.spel.ast.PropertyOrFieldReference.readProperty(PropertyOrFieldReference.java:224) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.PropertyOrFieldReference.getValueInternal(PropertyOrFieldReference.java:111) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.PropertyOrFieldReference$AccessorValueRef.getValue(PropertyOrFieldReference.java:416) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:98) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.OpEQ.getValueInternal(OpEQ.java:42) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.OpEQ.getValueInternal(OpEQ.java:32) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:119) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:309) ~[spring-expression-6.1.5.jar:6.1.5] at org.springframework.security.access.expression.ExpressionUtils.evaluateAsBoolean(ExpressionUtils.java:30) ~[spring-security-core-6.2.3.jar:6.2.3]
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요! 질문있습니다!
안녕하세요! 수업 너무 잘들었어요 ~이번 수업 프로젝트를 수동 배포를 해보고 CI/CD 공부를 하고싶어서 찾아보던중EC2서버에 docker를 사용해서 JENKINS를 설치하고 CI/CD작업을 하던 와중에 백엔드 코드는 빌드하고 배포를 하였습니다.1. JENKINS포트를 9090 으로 변경하고(스프링 부트 서버가 8080이라 )맞는걸까요?2. 화면도 나오게 배포를 하려면 따로 리액트도 배포를 해줘야 할까요? 같은 서버에 있어서 안해줘도 된다고 생각했는데... 조언부탁드려요 ㅠㅠ!많은 블로그들을 보면 ec2서버를 여러대 사용하고 배치하고 있던데 어떨때 ec2서버를 여러대 사용해야하고 mysql mastr-slave구조도.. redis 서버도 어디다 배치하고 감이 안잡혀서 강사님께 조언부탁드렸습니다 ㅠㅠ!저의 질문이 강의와 맞지 않아서 무례할지 고민하다가.. 조언을 부탁드렸습니다 . 감사합니다