묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링부트 시큐리티 & JWT 강의
intelliJ jdk11 oauth로그인 에러 문제입니다.
안녕하세요 훌륭한 강의를 잘 듣고있는 학생입니다.다름이 아니라 제가 oauth로그인을 하면 오류가 발생하여 문의드립니다.우선 저는 jdk11과 Gradle을 사용하고있습니다.위와 같이 잘 작동하다가 아래와 같이 oauth로그인을 사용하면 에러가 발생합니다.Parameter 0 of method setFilterChains in org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration required a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' that could not be found.에러의 총 내용은 위와 같습니다.그래서 다른 질문들의 답변을 보니 라이브러리의 충돌 및 다운로드의 문제인거 같아 intelliJ에서 제공하는 invalidate cache기능을 사용하여 다시 재빌드를 하였지만 같은 에러가 발생하고 .\gradlew --refresh-dependencies를 사용하여 재빌드 또한 진행하였지만 같은 결과가 나왔습니다. 마지막으로 toolbox 및 인텔리제이를 다시 실행해도 같은 현상이 발생합니다. 혹시 방법을 알 수 있을까요??
-
미해결따라하며 배우는 NestJS
강의 잘들었습니다! 배포 자료 받을수있을까요?
안녕하세요. 강의 잘들었습니다. 감사합니다.그런데 마지막에보여주신 배포관련 pdf 볼수있을까요? 다른분이 질문해주신 답글https://drive.google.com/file/d/1z3QUaECsZ_bVHIUF-rYyDrNv_oCvR8re/view?usp=sharing여기에는 한장의 사진만 보여서요!
-
해결됨Spring Boot JWT Tutorial
일반 스프링에서 진행
제가 사정이 있어서(학교 프로젝트) 스프링으로 진행을 해야 할 것 같은데, 스프링(메이븐,마이바티스)으로도 진행이 가능한가요?맨처음부터 포스트맨으로 진행시 바로 hello가 떠버려서 멘붕입니다 ㅜㅜ
-
미해결스프링부트 시큐리티 & JWT 강의
JWT Token 구현에서 Session 을 사용한다?
안녕하세요 강사님. 이번 수업 너무 잘 들은 학생입니다.다름이 아니라 JWT Token 을 필터단에서 Security에게 인가처리를 맡기기 위해 Security Context 에 Authentication을 저장한다고 하셨습니다.이는 스프링 내 세션에 인증 객체를 저장해 두는 것으로 이해를 하였습니다. 1.수업중에도 설명해주셨듯이, 토큰을 사용하는 것은 세션에 인증 객체를 저장하지 않도록 해서 서버적으로 부하가 걸리는 상황을 방지하는 점이 큰 장점으로 이해하였으나, 결국 시큐리티에 인가를 맡기려면 세션에 저장하는 방법 밖에 없는지 궁금합니다. 필터들 사이에서 Authentication 정보를 주고 받아야 하니 스프링 시큐리티를 사용하려면 세션 저장 말고는 방법이 없는걸까요?2.계속 생각하다보니 또 궁금해진 사항인데, [SecurityContextHolder 에 세션 정보를 저장해두는 것이 SpringSecurity 가 일반적으로 채택하고 있는 formLogin 방식에서 사용하는 세션 저장 방식]인 것으로 이해를 했습니다. 이 때, 왜 이 부분이 계속 세션을 저장해서 서버적으로 부하가 걸리게 하는 건지 잘 이해를 못한 것 같습니다. Authentication 과정을 살펴보면 그 때 인증을 하기 위해 형성한 Authentication 객체는 그 요청을 처리하기 위해 Thread Local 에 있는 SecurityContextHodler 에 저장을 해두고 인가를 처리하게 됩니다. 하지만 그 과정을 끝내고 나면 Holder를 비워주고, THread도 종료되기 때문에 서버 자체에는 딱히 저장되는 것은 없지 않나요? 보안적인 측면 외의 SESSION 방식의 단점을 잘 이해하지 못한 것 같습니다. 간략하게 라도 도움주시면 감사할 것 같습니다. 2번을 먼저 이해해보는게 1번을 이해하는데 도움이 될 것 같긴 하네요. 강의도 너무 잘들었습니다. 미리 감사드립니다.
-
미해결따라하며 배우는 NestJS
[JWT를 이용해서 토큰 생성하기] secretOrPrivateKey must have a value 에러 발생
JWT를 이용해서 토큰 생성하기 강의중POST /sigin API에 요청을 보냈을 때 아래와 같은 에러가 발생합니다:ERROR [ExceptionsHandler] secretOrPrivatekey must have a value
-
미해결따라하며 배우는 NestJS
npm run start시 QueryFailedError: "username" 열의 자료 가운데 null 값이 있습니다. 에러가 발생합니다.
npm run start로 application을 실행시켰을 때QueryFailedError: "username" 열(해당 릴레이션 "user")의 자료 가운데 null 값이 있습니다에러가 발생합니다.DB 상태는 회원가입한 유저가 user 테이블에 존재합니다.
-
미해결Spring Boot JWT Tutorial
TokenProvider의 의존성 주입이 끝난 이후 key변수를 할당하는 이유
3강 1:58에서 TokenProvider에 대해 설명해주시면서빈 생성 이후 의존성 주입까지 받은 뒤 Key를 생성하기 위해 InitializingBean을 implement한다고 설명해주셨는데,서치를 하다 보니 강사님처럼 인터페이스 구현 없이 생성자에서 바로 Key를 생성하는 코드도 간혹 보았습니다.이처럼 생성자 호출 시에 Key를 만들지 않고 그 이후에 Key를 생성하신 구체적인 이유가 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
비대칭키 jwt 인증 문제
http://localhost:8888/ecommerce/default 에서는 {name: "ecommerce",profiles: ["default"],label: null,version: "f45bf692a6cb54252ea12041f0aa92a71964a5f7",state: null,propertySources: [{name: "file:///C:\\Users\\ydj90\\Downloads\\git/file:C:\Users\ydj90\Downloads\git\ecommerce.yml",source: {token.expiration_time: 864000000,gateway.ip: "172.30.1.33",token.secret: "userToken_token"}}]}http://localhost:8888/user-service/default 에서는{name: "user-service",profiles: ["default"],label: null,version: "f45bf692a6cb54252ea12041f0aa92a71964a5f7",state: null,propertySources: [{name: "file:///C:\\Users\\ydj90\\Downloads\\git/file:C:\Users\ydj90\Downloads\git\user-service.yml",source: {spring.datasource.url: "jdbc:h2:mem:testdb",spring.datasource.driver-class-name: "org.h2.Driver",spring.datasource.generate-unique-name: false,token.expiration_time: 864000000,gateway.ip: "172.30.1.33",order_service.url: "http://ORDER-SERVICE/order-service/%s/orders",spring.datasource.username: "sa",token.secret: "userToken_token"}}]} 이와 같이 token.secret이 같은데 왜 subject가 null값이 되는지 이유를 알 수 가 없습니다. login하고 나온 header값을 가지고 bearer에 넣어 인증하는 방식이 아닙니까?이유를 잘 모르겠습니다. JWT token is not valid이게 왜 뜨는지subject = Jwts.parser().setSigningKey(env.getProperty("token.secret")) .parseClaimsJws(jwt).getBody() .getSubject(); 여기서 왜 null값으로 값을 반환하는지 이해를 할 수가 없습니다.
-
미해결따라하며 배우는 NestJS
typeorm 0.3.x 버전 오류
많은 분들이 남겨준 것처럼 typeorm 0.3.x 버전 오류로 인해 저도 조금 고생했습니다.공식문서 참조하며 해결했습니다.https://docs.nestjs.com/techniques/database#repository-patterntypeorm 0.3.x 버전은 @EntityRepository 가 deprecated 됐기 때문에 custom Repository를 생성해주었습니다. custom Repository 생성은 아래 블로그를 참조했습니다.https://velog.io/@pk3669/typeorm-0.3.x-EntityRepository-%EB%8F%8C%EB%A0%A4%EC%A4%98위 링크 내용을 참조로 typeorm-ex.decorator.ts 파일과 typeorm-ex.module.ts 파일을 생성합니다.해당 링크가 문제가 될 시 링크 바로 삭제하도록 하겠습니다 ㅠ.. typeorm.config.tsentities를 불러오기 위해 경로 또는 저희가 설정한 entitiy를 바로 집어 넣었습니다.autoLoadEntities: true - entities를 빼고 해당 옵션을 넣어서 자동으로 불러올 수도 있습니다. (본인이 직접 컨트롤 하는 것이 아니기 때문에 부정확해질 수도 있음.)board.repository.ts저희 repository에 @EntityRepository 대신 CustomRepository(Board)을 넣어줍니다.board.module.tsimports는 custom Repository를 불러와야 하기 때문에, 저희가 만든 TypeOrmExModule class의 forCustomRepository에 저희 Repository를 넣어줍니다.board.service.ts기존에 @EntityRepository를 사용한 경우 @InjectRepository 데코레이터를 사용했지만 해당 부분을 유지하면 오류가 발생한다고 합니다.따라서 @CustomRepository를 생성하여 사용하는 경우 @InjectRepository를 제거하고 사용합니다. 이러면 아직 findOne 메소드의 id는 빨간줄인데findOne 메소드는 options로 FindOneOptions Parameter를 받게 되어 있고해당 FindOneOptions중 저희가 사용할 것은 where 옵션을 사용해야 해당 id를 통해 데이터를 불러올 수 있습니다.그래서 최종적으로 findOne 메소드는 아래 그림과 바꿔주면 해당 메소드를 사용할 수 있게 됩니다.
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
토큰 인증 시스템 관련
안녕하세요? 초보부터 중급까지 아주 재미있게 진행해 나가고 있습니다.강의와 직접적인 연관은 아니지만, 간접적인 연관인 부분이 궁금해서 질문 드립니다.클라이언트 기반의 로직은 대부분 강의에 나와 있어서 프로세스가 이해가 되는데요.서버쪽은 대략은 짐작이 되나, 구체적으로 어떻게 돌아가는지 알고 싶은데, 어떤 자료를 어디서 참고해야 될지 조언을 구합니다.예를 들면 인증 API 중에 /auth/login API를 사용하면 정해진 유저 (test@codefactory.ai:testtest)에 대해 Base64로 인코딩된 값으로 서버로 던지면서버에서 디코딩해서 원래의 값을 찾은 후 DB를 검색할 거 같은데,PPT에 설명해주신 자료에 보면 DB를 사용하지 않는다? 라고 하셔서 그럼 어떻게 인증을 하지? 라는 궁금증이 생겼습니다.결론적으로 토큰기반 인증시스템에 대해 서버쪽 프로세스를 알고 싶은데, 관련 자료 알고 계신부분이 있다면 조언 부탁드립니다.아울러 자바 (또는 스프링) 기반의 샘플 소스 코드도 있다면 더욱 좋고요..두서 없이 질문 드려서 죄송합니다.
-
해결됨Spring Boot JWT Tutorial
authenticationManagerBuilder에서 getObject를 할때 에러가 뜹니다.
authenticationManagerBuilder.getObject();This object has not been built at org.springframework.security.config.annotation.AbstractSecurityBuilder.getObject(AbstractSecurityBuilder.java:51) ~[spring-security-config-5.7.4.jar:5.7.4] 왜그러는걸까요 추가로 DaoAuthenticationProvider에서 자동으로 additionalAuthenticationChecks해줘서 String presentedPassword = authentication.getCredentials().toString(); if (!this.passwordEncoder.matches(presentedPassword, userDetails.getPassword())) { this.logger.debug("Failed to authenticate since password does not match stored value"); throw new BadCredentialsException(this.messages .getMessage("AbstractUserDetailsAuthenticationProvider.badCredentials", "Bad credentials")); }패스워드를 체크할 수 있다는 글을 보았는데 확인해보니 deprecation이 되어있습니다.사용하지 않는게 좋나요?
-
미해결따라하며 배우는 NestJS
저는 왜 import가 자동으로 되지 않을까요?
혹시 관련 모듈이나 단축키가 있을까아ㅛ?이번 강의에서는 BaseEntity가 영상에서 보면 자동으로 import가 되던데 저는 되지 않습니다;
-
미해결스프링부트 시큐리티 & JWT 강의
회원가입 후 loginForm에서 로그인시 홈으로 이동 안될시 확인할 사항
// PrincipalDetail 클래스에서 모두 True로 하고 돌려보세요. // 그러면 잘됩니다. // password 리턴 @Override public String getPassword() { return user.getPassword(); } @Override public String getUsername() { return user.getUsername(); } @Override public boolean isAccountNonExpired() { return true; } @Override public boolean isAccountNonLocked() { return true; } @Override public boolean isCredentialsNonExpired() { return true; } @Override public boolean isEnabled() { // 1년동안 회원이 로그인을 안하면, 휴먼 계정으로 하기로함 // 현재시간 - 로그인 시간 >= 1년을 초과하면 return false 등등... return true; }
-
미해결따라하며 배우는 NestJS
typeorm 버젼 0.3.x 문제로 인한 deperaciated 문제 쉽지 않네여
이거 강의 다시 찍어주시면 안되나여 인터넷 자료만 보고 따라 하기 넘 어렵 ; stackover flow 에서 뭐라는건지 잘몰겠습니다 ㅋㅋ; https://stackoverflow.com/questions/71557301/how-to-workraound-this-typeorm-error-entityrepository-is-deprecated-use-repo
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
jwt 관련 질문입니다.
signWith(SignatureAlgorithm.HS256, env.getProperty("token.secret"))jwt 버전 0.10 버전이상부터는 관련 내용이 문자열이 작다고 합니다. 혹시 0.11버전에 맞춰서 한다면 어떤 방식으로 해야합니까?추가적으로 signWith의 deprecated 또한 해결 하는 방법에 대해 알려주시면 감사하겠습니다. => document 사이트 위치라도 알려주시면 직접찾아보겠습니다. 전체적으로 따라해봤는데 해쉬값이 작다고 하여 관련내용에 대해 이해를 하지 못해서 작성합니다.
-
해결됨Spring Boot JWT Tutorial
WebSecurityConfigurerAdapter deprecated
WebSecurityConfigurerAdapter 가 이제 더 이상 지원을 하지 않는다고 하여 WebSecurityFilterChain으로 하래서 시도중인데 계속하여 401 에러가 뜹니다...@EnableWebSecurity public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeRequests() .antMatchers("api/hello").permitAll() .anyRequest().authenticated(); return http.build(); } }
-
해결됨Spring Boot JWT Tutorial
!user.isActivated가 계속 오류납니다
eclipse로 따라하는중인데 계속 오류가나요..
-
미해결스프링부트 시큐리티 & JWT 강의
11분 42초 SecurityConfig 적용안됨
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.11분 42초에 나오는 시점에 permitAll() 때문에 로그아웃 상태일때 처럼 되야되는데 login 창이 계속 나옵니다. user,manager도 403이 안나오고 login으로 갑니다..
-
해결됨Spring Boot JWT Tutorial
그대로 따라했는데 오류가 납니다
Description:Parameter 0 of constructor in com.example.demo.service.CustomUserDetailsService required a bean of type 'com.example.demo.repository.UserRepository' that could not be found.Action:Consider defining a bean of type 'com.example.demo.repository.UserRepository' in your configuration. 구글링을 해봐도 전혀 해결되지 않아요 ㅠㅠ
-
해결됨Spring Boot JWT Tutorial
실행이 안되는데 왜 그럴까요?
안녕하세요?프로그램을 다운 받아서 intellij로 실행시키는데 오류는 안나는데. 실행이 안되네요,,,,첨부 파일처럼 나타타는데요...뭐가 문제일까요?스프링부트가 실행되어야 하는데 그냥 죽어버린느 느낌입니다, . 제가. 너무. 몰라서요.답변을 좀 부탁드립니다,, .