inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

AjaxAuthenticationProvider가 ProviderManager에게 등록이 안됩니다.

미해결

스프링 시큐리티

@Configuration @Order(0) public class AjaxSecurityConfig { private AuthenticationConfiguration authenticationConfiguration; @Autowired private void setAjaxSecurityConfig(AuthenticationConfiguration authenticationConfiguration) { this.authenticationConfiguration = authenticationConfiguration; } @Bean public AuthenticationProvider ajaxAuthenticationProvider() { return new AjaxAuthenticationProvider(); } @Bean public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception { return authenticationConfiguration.getAuthenticationManager(); } @Bean public SecurityFilterChain ajaxFilterChain(HttpSecurity http) throws Exception { AuthenticationManagerBuilder authenticationManagerBuilder = http.getSharedObject(AuthenticationManagerBuilder.class); authenticationManagerBuilder.authenticationProvider(ajaxAuthenticationProvider()); http .antMatcher("/api/**") .authorizeRequests() .anyRequest().authenticated() .and() .addFilterBefore(ajaxLoginProcessingFilter(), UsernamePasswordAuthenticationFilter.class); http.csrf().disable(); return http.build(); } @Bean public AjaxLoginProcessingFilter ajaxLoginProcessingFilter() throws Exception { AjaxLoginProcessingFilter ajaxLoginProcessingFilter = new AjaxLoginProcessingFilter(); ajaxLoginProcessingFilter.setAuthenticationManager(authenticationManager(authenticationConfiguration)); return ajaxLoginProcessingFilter; } } AjaxSecurityConfig.java AjaxAuthenticationProvider.java @Component public class AjaxAuthenticationProvider implements AuthenticationProvider { private UserDetailsService userDetailsService; private PasswordEncoder passwordEncoder; @Autowired private void setAjaxAuthenticationProvider(UserDetailsService userDetailsService, PasswordEncoder passwordEncoder) { this.userDetailsService = userDetailsService; this.passwordEncoder = passwordEncoder; } @Override @Transactional public Authentication authenticate(Authentication authentication) throws AuthenticationException { AccountContext accountContext = FormAuthenticationProvider.authenticationIf(authentication, userDetailsService, passwordEncoder); return new AjaxAuthenticationToken(accountContext.getAccount(), null, accountContext.getAuthorities()); } @Override public boolean supports(Class<?> authentication) { return authentication.equals(AjaxAuthenticationToken.class); } } 설정을 모두 완료하고 확인해보니 Filter는 정상적으로 등록이 되고, ProviderManager에 넘기는 것 까지는 진행이 됩니다. 그런대 ProviderManager에 BreakPoint를 걸고 확인해 보니 DaoAuthenticationProvider만 providers에 등록이 되어있습니다. 그래서 Form 방식을 확인해 보니 Form은 정상작동 하는 것을 확인했습니다. 혹시 자세한 코드가 필요하시다면 아래 링크의 브런치 ch4.3입니다. 항상 모든 질문에 최선을 다해 답변해 주시니 감사합니다. 추가 사항으로 SecurityConfig에 넣어서 돌렸더니 Provider가 정상적으로 추가되는 것을 확인했습니다. 또한 오류는 인식하고, AjaxAuthenticationFailureHandler는 또 호출을 합니다. 점점 뭐가 문제인지 잘 모르겠습니다. Othkkartho/SpringSecurityLearn at ch4.3 ( github.com )

  • Spring Security
  • java
  • spring-boot
오스카르소 댓글 2 좋아요 0 조회수 1073

(nx ==7 && ny == 7) 일때 return 해줘야 하지 않나요?

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

저는 아래와 같이 nx가 7이 될때 return을 해줘야 한다고 생각했습니다. 왜냐하면 distance 배열에서 거리를 입력하는데, 7,7에 도착하는 순간 return을 한 그 순간의 값이 최단경로의 길이라고 생각했습니다. return을 해주지 않는다면 distance[7][7]의 값이 최단 거리가 아닌 가장 긴 거리의 값으로 덮어써 진다고 생각을 했는데, 왜 (nx ==7 && ny == 7)경우 return 하게끔 예외처리를 해주지 않아도 되는지 궁금합니다. for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; // if (nx ==7 && ny == 7) { // distance[nx][ny] = distance[x][y] + 1; // answer = distance[nx][ny]; // return; // } if (nx >= 1 && nx <= 7 && ny >= 1 && ny <= 7 && board[nx][ny] == 0) { // 범위 안이고 해당 좌표의 값이 0 일 경우 board[nx][ny] = 1; distance[nx][ny] = distance[x][y] + 1; queue.offer(new Point(nx, ny)); } }

  • 코테 준비 같이 해요!
  • java
황준호 댓글 1 좋아요 2 조회수 429

@Data의 역할

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

왜 Dto에 @Data가 빠지면 이런 오류가 나는 지 궁금합니다. 강의에서는 getter가 없어서 오류가 났다고 배웠습니다. property가 없다고 오류가 난다고 배웠는데 왜 getter가 있어야 하는 지 궁금합니다.

  • java
  • spring-boot
  • JPA
  • spring
dduckmane 댓글 1 좋아요 1 조회수 520

동일한 트랜잭션 의미

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

동일한 트랜잭션에서 조회한 엔티티는 같음을 보장 이뜻에서 동일한 트랜잭션은 한명의 유저가 특정 컴퓨터로 보낸 모든 요청을 동일한 트랜잭션이라고 보나요? 아니면 한명의 유저가 보낸 한번의 요청내에서만을 동일한 트랜잭션이라고 보나요?

  • java
  • JPA
댓글 1 좋아요 0 조회수 353

OrderItem 생성메서드

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

Order 생성 메서드의 매개변수 값으로 Member, Delivery,OrderItem list가 들어갔습니다. OrderItem 생성메서드에는 매개변수로 Item, orderPrice,count가 들어갔는데 OrderItem 클래스에 Order도 변수로 가지므로 생성메서드 매개변수로 Order도 들어가야 하는것이 아닌가요?? 감사합니다.

  • java
  • spring
  • 웹앱
  • JPA
  • spring-boot
댓글 2 좋아요 2 조회수 710

successHandler가 작동하지 않습니다.

미해결

스프링 시큐리티

우선 너무 자주 질문을 드리는 것 같아 죄송합니다. SuccessHandler를 입력하고, 핸들러에 BreakPoint가 작동하지 않아 FailHandler와 denied를 만들어서 작동시켜 봤는데 SuccessHandler이외에는 정상 작동하는 것을 확인했습니다. 저에게는 코드에 이상한 부분이 보이지 않아 질문드리게 되었습니다. 전체 코드는 깃허브 Othkkartho/SpringSecurityLearn: 스프링 시큐리티 인프런 강의에 실전 프로젝트를 직접 해보는 프로젝트입니다. ( github.com ) 에 branches ch3.9,10,11입니다.

  • java
  • spring-boot
  • Spring Security
오스카르소 댓글 2 좋아요 1 조회수 1316

회원서비스테스트 12분 58초 질문

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 제가 자바코드에 대한 이해가 깊지 않은 상태에서 수강 중입니다. 제 논리에 이해되지 않는 부분이 있어서 질문드립니다. 강의 중 코드 16줄에서 memberService 를 새로 만들었습니다. 그럼 memberService 안에 그 만의 memberRepository 가 생긴다고 생각했습니다. 그런데, clear를 위해 17줄에서 새로운 memberRepository를 만들고 있습니다. 이 memberRepository는 memberService 안의 memberRepository 와 다른 것이지 않나요?? 이 memberRepository를 clear하는 게 memberService 의 memberRepository 를 clear하는 행위가 아니라고 생각합니다. 제 부족함을 채워주시면 감사하겠습니다. 혹시 memberService 가 static이라 모두 같은 객체를 공유하는 건가요??

  • MVC
  • java
  • spring
  • spring-boot
13selfesteem91 댓글 1 좋아요 3 조회수 217

실제로 실무에서도 컨트롤러에서 레포지토리를 호출하기도 하나요?

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

보통 저렇게 계층형으로 나누면 컨트롤러는 서비스만 호출하고 서비스에서 레포지토리를 호출하는 식으로 하는 줄 알았는데 실무에서도 컨트롤러에서 바로 간단한 레포지토리를 호출하는 경우가 자주 있나요?

  • JPA
  • spring
  • spring-boot
  • java
  • 웹앱
비가싫어요 댓글 1 좋아요 0 조회수 474

생성자와 setter

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강사님 말씀대로 수정할 부분만 get/set기능이 잇는 dto를 만들어서 이용해봤습니다. 강사님이 계속 controller같은 곳에서는 setter의 이용을 제한하시라고 설명을 하셔서 저는 생성자를 만들어서 처리를 하였습니다. 근데 이부분에서 차라리 정정펙토리메서드를 이용해야하나 궁금증이 들었습니다. 제가 정적펙토리메서드를 질문란에서 공부한 결과로는 상속관계가 아니면 정적펙토리메서드를 사용하는 것이 장점이 많은 것으로 공부를 하였는데요 제가 한 코드처럼 이곳에 정적펙토리메서드를 적용하는 것이 괜찮은 방법인지 궁금합니다. 만약에 이 방법이 괜찮다면 앞으로 항상 수정코드시에 updateDto를 만들때는 정적펙토리메서드를 이용하여 수정해도 되나요??

  • JPA
  • spring-boot
  • 웹앱
  • spring
  • java
dduckmane 댓글 1 좋아요 1 조회수 301

상속관계의 관리

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강의에서는 수업을 위해 다운캐스팅을 사용하셨다고 하셨습니다. 그러면 상속관계에서는 book,Album,Movie관련 서비스를 만들고 BookForm, AlbumForm, MovieForm을 만들고 @Mapping도 book, album, movie에 대해서 다 만들고 대신에 repository만 itemrepository로 하나로 해서 관리하는 방식을 사용해야한다고 생각합니다. 제가 생각한 것이 괜찮은 방법이 맞는 지 궁금하고 아니라면 어떻게 해야하는 지 궁금합니다.

  • 웹앱
  • JPA
  • spring-boot
  • java
  • spring
dduckmane 댓글 1 좋아요 0 조회수 295

14분대 정도에서의 설명과 관련하여 질문이 있습니다!

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

영한님께서 컬렉션을 처음에 만들어두고 바꾸지 말라고 하신 뜻이 컬렉션의 종류를 바꾸지 말라고 하신건가요..? 아니면 컬렉션의 값을 처음에 생성할 때 한 번 만들어두고 그 다음에 건드리지 말라고 하신건가요?

  • spring
  • spring-boot
  • java
  • JPA
  • 웹앱
비가싫어요 댓글 1 좋아요 1 조회수 322

터미널 다시 시작

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

터미널을 껐다가 다시 켜서 4분 49초처럼 ll하고 치면 localhost :8082가 종료되면서 끊기는데 터미널을 끄고 다시 실행해서 명령어를 치는 게 아닌가요?

  • spring-boot
  • MVC
  • java
  • spring
celinaym0810 댓글 1 좋아요 1 조회수 397

cascade=ALL, orphanRemoval=true 관련 질문

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 혼자 고민하고 생각 해보다 해결이 되지 않아 문의드리러 왔습니다 ㅠㅠ 해당 수업을 듣고, 사이드 프로젝트를 수행하면서 orphanRemoval을 사용해보게 되었습니다. 대략적인 엔티티간의 관계는 다음과 같습니다. 총 4개의 엔티티가 각각 다대일 매핑으로 이루어져 있는데요. 각 엔티티의 정보는 다음과 같습니다. 엔티티 A : 유저 엔티티 B : 글 엔티티 C : 글에 포함되는 정보 엔티티 D : 엔티티 C에 포함되는 정보 문제는 엔티티 B까지만 cascade=ALL, orphanRemoval=true가 적용된다는 것입니다..ㅠㅠ 차이가 있다면, 엔티티 A는 유저의 정보라서, 항상 저장이 되어있는 것을 꺼내어와서 사용한다는 것이고(저장을 회원가입 로직에서만 수행합니다.), 엔티티 B, C, D는 글 작성 시 모두 새로 생성하여 사용한다는 점입니다. 저는 엔티티B 삭제 로직에서, 엔티티A의 List에서 엔티티B를 remove 하면 B, C, D가 모두 삭제되는 것을 기대했는데, 전혀 삭제가 되지 않습니다 ㅠ (List에서 엔티티B가 제거는 됩니다..) 오히려 엔티티A의 List에서 엔티티B을 remove하고, 추가적으로 엔티티B의 리포지토리에서 엔티티 B를 삭제해야만 비로소 삭제가 완료됩니다. 기능 자체를 구현은 했지만, 이렇게 동작하는 원인을 알고싶어서, 여기저기 찾아보다가 답을 찾지 못해 이곳에 질문 글을 남기게 되었습니다 ㅠㅜ 관련 코드는 아래 깃허브 리포지토리에 있습니다. 엔티티 리포지토리 https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/domain 삭제 로직 리포지토리 https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/service/post

  • jpa
  • JPA
  • java
딱구 댓글 2 좋아요 2 조회수 664

new Integer가 좋지 않은 이유

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 궁금한게 있어 글 남깁니다 강의 7:30쯤에서 Integer.valueOf 해도 되지만 new Integer를 사용하겠다, 요즘은 new Integer가 별로 안 좋다고 한다~ 라고 말씀하셨는데요 new Integer가 좋지 않은 이유가 궁금합니다 나름 열심히 구글링 해보았는데 정확한 이유를 찾지 못해 여쭤봅니다 ㅠㅠ

  • integer
  • JPA
  • java
high 댓글 1 좋아요 1 조회수 1363

@Transactional 어노테이션만 붙이면 에러가 뜨네요.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 문제 : @Transactional 를 주석처리하면 정상적으로 회원가입이 되서 h2 DB에 입력됩니다... 그런데 다시 DB데이터 삭제 하고 @Transactional 어노테이션 설정을하면 아래와같이 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 뜹니다.. 정상적으로 지금까지 다된거같은데 갑자기 이러네요.

  • java
  • MVC
  • spring-boot
  • spring
김현종 댓글 1 좋아요 0 조회수 670

Hierarchical style에 대해서 질문이 있습니다!!!

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

강의 내용 중에 타임리프에서 include style보다 Hierarchical style이 중복 제거도 할 수 있고 실용적이라고 하셔서 제가 공부를 하려고 찾아보는데 궁금한게 몇가지 있어서 질문드립니다. 강의에서 예제들이 많다고 하셨는데 타임리프 홈페이지에 들어가서 찾아보니 Hierarchical style에 대한 설명이 있는 홈페이지에 2. Example Application에 들어가면 예제들이 있는 것 인가요?? 제가 또 Hierarchical style에 대해서 찾아보다 보니 Thymeleaf Layout Dialect 에 대한 설명들이 많이 나오던데 혹시 Hierarchical style layout이랑 Layout Dialect랑 같은 의미인가요? 아니면 Hierarachical이 Layout Dialect를 쓴다는 의미인건가요...? 언제나 친절하게 답변해주셔서 감사합니다!

  • spring
  • 웹앱
  • java
  • JPA
  • spring-boot
지호 댓글 1 좋아요 0 조회수 384

자바11

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

[질문 내용] 제가 학원 수업에서 사용하는 버전과 이 수업에서 사용하는 버전이 다른데 이럴때는 어떻게 해야하나요???

  • java
  • MVC
  • spring-boot
  • spring
댓글 1 좋아요 0 조회수 626

왜 Team 엔티티 조회 쿼리가 발생되는지 잘 모르겠습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요, 강의 잘 듣고 있습니다. (아래 내용은 @ManyToOne의 default 설정 값인 fetch가 EAGER일 때 입니다...) 해당 영상 5분 7초 때의 콘솔을 보면, Team 조회 쿼리가 추가로 한 번 더 발생되고 있습니다. 하지만 jpql쿼리를 보면, "select m from Member m inner join m.team t" 즉 Member 엔티티와 연관된 Team 엔티티를 inner join 하여 같이 한 번에 가져오는 쿼리입니다. "select m from Member m" 이라고 jpql을 작성했으면 당연히 연관된 Team 엔티티를 조회하는 select 쿼리가 별도로 실행되는 게 맞지만, inner join 으로 작성했기 때문에 별도의 Team 엔티티를 조회하기 위한 select 쿼리가 발생할 필요가 없는 것 같은데, 추가로 select 쿼리가 발생하는 부분이 잘 이해가 되지 않습니다. 답변 미리 감사드립니다.

  • JPA
  • java
runwithyou123 댓글 2 좋아요 2 조회수 471

12분09초

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

return new Result(collect); Result<T> 리절트에 <>안해주고 위에처럼 그냥 써도 상관없나요? 어느 블로그에서 "간혹가다 책에서 Object형을 암시적으로 받는다고 적혀있는 경우가 있는데 단언컨데 Object형을 받지 않습니다."라고 나와있는데 굳이 이렇게 코드를 짠 이유가 뭘까요??

  • java
  • spring-boot
  • spring
  • JPA
alrnr3521 댓글 1 좋아요 0 조회수 474

테스트 픽스쳐 관련

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요 강사님~!! 항상 감사한 마음으로 수업 잘 듣고 있습니다 ㅎㅎ 테스트 픽스쳐 관련해서 궁금한 점이 있어 질문 드립니다. 엔티티에 fixture 함수를 정의하게 되면 테스트에 필요한 내용이 실제 운영 코드로 전파되거나, 반대로 (운영 코드인) 엔티티의 정적함수가 테스트 환경에만 종속되는 문제가 있을 것 같은데 어떻게 생각하시는지 궁금합니다!!

  • java
  • spring-boot
  • spring
  • kotlin
  • refactoring
돌아온무리뉴 댓글 2 좋아요 1 조회수 704

인기 태그

인프런 TOP Writers

주간 인기글