묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
.authenticated()에 걸렸음에도 403에러가 뜨는 이유가 뭔가요?
.authenticated()에 걸렸음에도 403에러가 뜨는 이유가 뭔가요?인증이 필요한 페이지임에도 권한이 필요하다는 403 에러가 떠서 401로 직접 설정하는데, 403이 뜨는 이유가 무엇인지 궁금합니다.
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
변경된 시큐리티의 filterChain에서 and() 메서드 사용은 권장하지 않나요?
기존 상속 받아서 사용하던 것 처럼 변경된 filterChain에서도 and() 메서드를 사용해서 옵션들을 빌더 연결 패턴 처럼 사용할 수 있던데 변경된 시큐리티에선 권장하지 않는 방법인지, 아니면 가독성 때문인지 궁금합니다! @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { log.debug("디버그: filterChain 빈 등록됨"); http.headers().frameOptions().disable() .and() .csrf().disable() .cors().configurationSource(configurationSource()) .and() .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .formLogin().disable() .httpBasic().disable() .apply(new CustomSecurityFilterManager()) .and() .exceptionHandling().authenticationEntryPoint((request, response, authException) -> { CustomResponseUtil.fail(response, "로그인을 진행해 주세요", HttpStatus.UNAUTHORIZED); }) .and() .exceptionHandling().accessDeniedHandler((request, response, e) -> { CustomResponseUtil.fail(response, "권한이 없습니다", HttpStatus.FORBIDDEN); }) .and() .authorizeRequests() .antMatchers("/api/s/**").authenticated() .antMatchers("/api/admin/**").hasRole("" + UserEnum.ADMIN) .anyRequest().permitAll(); return http.build(); }
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
이클립스 VS 비주얼스튜디오 장 단점 알려주세요~
안녕하세요 강사님 ~현재 저는 이클립스 사용해서 개발중 입니다회사에 일부 신입개발자나, 젊은 분들은 비주얼스튜디오코드를 사용중이더라구요저는 아직 설치는 아직 해보지 않았지만, 처음 설정 잡기가 많이 까다롭다고 하더라구요 강사님 개발 경력이 많으시니, 최주호 강사님이 생각 하시는 이클립스에서 -> 비주얼스튜디오 로 갈아 탄다면 어떤 이점이 있고, 이런 부분은 불편해서 감안 해야 한다 설명 해주셨으면 좋겠습니다 ( 참고로 html, css, jquery, javascript 뒷단 java, sql 모든 부분 개발 유지 보수 하고 있습니다 ) 급한 부분 아니니 한가하게 시간 나실 때 답변 주세요..계속 좋은 강의 많이 올려주셨으면 좋겠습니다감사합니다. 좋은 하루 보네 세요~ #장단#장단점#비교#eclipse#비주얼스튜디오코드#visual-studio-code#visual#studio#code#비주얼#스튜디오#코드
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
Transaction 고아질문드립니다.
Transaction 도메인이Account 2개를 가지고 있는데영속성 전략이 부모객체가 삭제되면 자식 객체도 삭제된다고 생각하면, Transaction 가지고 있는 account 객체 두 개중 하나가 삭제되어도 Transaction 객체가 삭제되나요? 아니면 부모가 하나 있다고 판단해서 살아있나요?
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
jwt 토큰 인증 시 Authentication 객체를 SecurityContext에 저장하는 건 이해했는데
최초 로그인 시에 Authentication 객체를 저장하는 이유가 이해되지 않아 질문드립니다..로그인 요청을 하면 사용자 인증 정보를 통해 확인 후 응답 헤더에 토큰을 실어서 반환하고Stateless 설정으로 인해 요청/응답이 끝남과 동시에 세션이 비워지는 걸로 이해했는데,토큰만 응답헤더에 실어서 보내면 끝인데 세션에 Authentication 객체는 저장 안 해도 상관 없지 않나 하는 의문이 들었습니다.. 설명해주시면 감사하겠습니다!
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
SecurityContextHolder.getContext.setAuthentication
인증 필터와는 달리 SecurityContextHolder.getContext.setAuthentication, 곧 바로 세션을 만들어주셨는데요, 이게 굳이 userDetailsService의 loadByUsername을 호출할 필요가 없기 때문인가요?
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
RSA 비대칭키 질문
HS256 암호화 방식은 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature)를 받으면, 서버가 "비밀키"를 가지고 있어서, 서버가 만든 JWT랑 비교해서 같은지 검증하는 방식이잖아요?RSA 암호화 방식은 마찬가지로 클라이언트로부터 JWT(헤더+페이로드+서버의 비밀키로만든 signature) 받으면, 서버는 JWT의 signature를 "공개키"로 검증한다고 이해했습니다. 그래야만 "비대칭키" 방식이기 때문입니다. 여기서 질문입니다. 1. 서버는 비밀키도 있으면서 왜 굳이 공개키로 검증하는지 (비밀키만 있으면 HS256 방식을 사용하면 돼서)2. 공개키로 검증하는게 맞다면 어떤 방식으로 검증하는지 (signature를 공개키로 복호화 하면 비밀키가 나오는 방식일까요?)긴 글 읽어주셔서 감사합니다.
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
로그인을 유지하는 방법
강의에서는 한번 로그인한 회원에 대한 토큰을 Http 응답 메세지에 담아서 보냈고 Postman의 요청 헤더에 이 토큰을 담아서 로그인한 회원임을 확인 했는데 이렇게 직접 넣어주지 않고 실제 서비스에서 로그인을 유지하려고 하면 어떠한 방식으로 해야 하나요?
-
미해결스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
ConstraintMode.NO_CONSTRAINT 역할
3분 43초에 외래키가 되면 null이 될 수 없다고 하셨습니다.근데, 제가 알기론 외래키는 null을 허용합니다... 혹시, jpa에서는 기본적으로 외래키에 null을 허용하지 않는걸까요?
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
동시성 테스트는 어떻게 작성해야하는지 궁금합니다.
안녕하세요. 올려주시는 강의 잘듣고 도움 많이 받아 항상 감사드립니다.@Transactional의 isolation, propagation 옵션에 대한 공부를 위한 학습 테스트를 작성해보고 싶은데요. (실제 업무에서도 동시성과 관련된 테스트 커버리지를 향상시키고 싶습니다)두 개의 쓰레드가 하나의 인스턴스에 동시에 접근하는 케이스에 대한 테스트를 작성하고 싶습니다. TransactionManager를 직접 핸들링하는건 올바른 방법은 아닐 것이라고 생각하는데, 테스트 코드 작성 단계에서 동시성 테스트를 지원하는 기능이 있을까요?JUnit5나 Mockito 라이브러리만을 활용해서 해결할 수 있는 방법이 있을지 궁금하여 질문드립니다!
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
thenThrow() 안에는 runtime 익셉션만 선언가능한가요?
안녕하세요. 기선님테스트 코드 작성은 처음이라 강의를 들으며 해보고 있는 수강생 입니다 !다름이 아니라 throw 부분에 ioException이나 sqlException을 실행시키고 싶은데 에러엔 org.mockito.exceptions.base.MockitoException:Checked exception is invalid for this method! 이렇게만 뜨더라구요 근데 runtime 익셉션은 정상적으로 실행되는 걸 보면서 thenthrow는 unchecked 익셉션만 가능한건지 궁금증이 생겼습니다. 혹시 ioException이나 sqlException 처럼 checked 익셉션을 실행하고 싶으면 어떻게 하면 좋을까요?사정상 코드의 내용을 상세히 첨부할 수 없지만 대략적으로 올려봅니다 @DisplayName("3. 실패 : DB insert 오류") public void 실패_DB_insert_오류() { //given //특정 객체 생성 when(특정 서비스).thenThrow(new sqlException()); //then - 실패 결과 assertThrows(sqlException.class, () -> { log.info("!! DB insert 오류 !! "); //when - 프로세스가 진행 }); // verify를 통해 해당 프로세스 최소 1번 호출 되었는지 확인 verify(kosService,atLeastOnce()).특정 서비스); }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Junit 테스트관련 질문을 드려요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요 강의가 테스트가 중점은아니지만 강의에서는 mocking에대해 간단하게 언급하고 넘어가주셨는데,, 궁굼한게 조금 있어서 질문드립니다.ㅠ jUnit 테스트 작성시 Controller에 대해 작성할 수도있고, Service를 mocking할수도있고, service도 테스트하고.. 말씀하신 Entity에 비즈니스 로직도 테스트코드를 작성할 수 있을것 같습니다. 여러 테스트 코드를 짤수가 있는데 실무에서는 어디서부터 어디까지를 중점에 두고 작성하는지 궁굼합니다.. 저는 이강의를 보고 어플리케이션을 간단하게 작성하고있는데 Postman으로 하던 테스트를 Controller 테스트를 작성해서 통합테스트라고 하나요?? 그런식으로 작성하고있습니다. 무조건 mocking을해서 테스트를 작성하는게 올바른 방향인가요?? 단위테스트에 단위를 어떻게보면 좋을지 질문드려용,,, 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 코드에서 오류가 발생했는데 아무리 찾아봐도 원인을 모르겠습니다..
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]테스트 코드를 작성하고 실행하는데 제 테스트 코드를 못찾는 것 같습니다.. junit 잘 붙어있는데 왜 그러는 걸까요? 그리고 한글도 깨지는 것 같은데 원인을 모르겠습니다... 코드와 혹시몰라서 캡쳐본도 올립니다. java.lang.Exception: No tests found matching Method �쉶�썝媛��엯(jpabook.jpashop.service.MemberServiceTest) from org.junit.internal.requests.ClassRequest@41ab013 at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:50) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
중복 저장
mock 객체 만들어서 restful 호출했더니 왜 중복으로 저장이 될까요? postman으론 한번 저장되던데
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jpa 테스트 실행에서 오류 발생
안녕하세요 강사님! 양질의 교육 정말 감사합니다. 다름이 아니라 이번 JPA 파트 이전까지만 해도 잘 돌아가던 통합 테스트가 import 부분처럼 오류가 뜨기 시작했습니다. 소스코드를 강사님과 완전히 똑같이 쳤는데 무슨 문제가 있는지 알고 싶습니다
-
미해결더 자바, 애플리케이션을 테스트하는 다양한 방법
Postgresql GenericeContainer로 안띄워지시는분 참고하세요~!
어느 버전부터인지는 모르겠으나 postgres_password가 설정되지 않으면 컨테이너가 띄워지지 않네요. GenericContainer 에 POSTGRES_PASSWORD 설정을 주거나 POSTGRES_HOST_AUTH_METHOD 에 trust 속성을 주면됩니다! 개발 환경은 윈도우 10에 spring boot 2.4.0, testcontainer 1.15.0 입니다
-
해결됨Kotlin으로 개발하는 Spring Boot Web MVC
HTTP Method 설명에서요~ PATCH 메서드는 왜 없을까요?
실무에서 잘 사용하지 않나요? 또, GET의 DataBody가 없다고 하셨는데, Request Body에 대한 RFC 표준이 갱신되어서 작성은 가능하지만 예전 표준의 잔재로 일부 서비스에선 해당 정보에 대해 응답하지 않을 수 있다고 알고 있습니다.