스프링부트 EC2 배포 시 소셜로그인, JWT, S3 처리
미해결
스프링부트를 EC2에 배포할 때 OAuth2, JWT나 S3를 이미지 넣는 설정 파일(yml)을 보안상 git에 안올라가게 막아주는데 그러면 배포할 때는 어떻게 처리를 해줘야 배포상태에서 OAuth2, JWT나 S3를 이미지 넣는 기능을 사용할 수 있나요??
- ec2
- jwt
- oauth2
- s3
176만명의 커뮤니티!! 함께 토론해봐요.
미해결
스프링부트를 EC2에 배포할 때 OAuth2, JWT나 S3를 이미지 넣는 설정 파일(yml)을 보안상 git에 안올라가게 막아주는데 그러면 배포할 때는 어떻게 처리를 해줘야 배포상태에서 OAuth2, JWT나 S3를 이미지 넣는 기능을 사용할 수 있나요??
미해결
[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
Member 클래스의 memberRole필드는 왜 클래스의 본문에 정의해주나요? null 초기화때문인가요? 파라미터에서도 기본값으로 null을 줄 수 있지 않나요?
미해결
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
서버를 종료하면 회원가입한 user정보가 삭제되는것이 맞나요? 워크벤치에서도 확인해보니 회원가입 후 서버를 종료하면 데이터가 user데이터가 사라진것을 확인했습니다..
미해결
스프링부트 시큐리티 & JWT 강의
처음에 기타가 아닌 걸로 했다가 다시 작성해봅니다. 앱 라이브를 안할경우 페이스북 로그인시 뜨는 화면 라이브를 하려니 뜨는 에러 개인정보처리방침 URL: https://www.facebook.com/privacy/policy/?entry_point=facebook_page_footer 사용자 데이터 삭제 https://developers.facebook.com/docs/development/create-an-app/app-dashboard/data-deletion-callback 임의 작성 localhost:8080 에서 대충 www.naver.com 으로 웹사이트 url 변경 앱 라이브 성공!! 일단 라이브 성공 상태에서 다시 http://localhost:8080 로 웹사이트 url 변경 ??? 읭? 분명 비활성화에서 바뀌긴 했는데 페이스북 로그인이 안됨.. (개발자 계정과 다른 페북 아이디일경우) 개발자 페이스북 아이디 동일할경우. 여기까지 후 일단 페북 인증 잠정 중단. 확인결과 비즈니스계정을 인증해야 api를 정상적으로 사용가능한데, 비즈니스계정 인증시 사업자 등록증 등 요구하는게 많아 포기.
해결됨
[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
무료 강의임에도 굉장히 강의 퀄리티가 높은 것에 감탄을 하며 보고 있는 중입니다. 좋은 감사드립니다. Validation 처리와 관련해서 질문드릴 것이 있는데요. 강의에서 DTO에 해당하는 클래스의 프로퍼티에 백킹필드를 사용하시고 Custom Getter를 만들어서 처리를 하셨는데, 혹시 이렇게 하는 방법 말고 바로 프로퍼티만으로 하는 방법도 있을까요?
미해결
스프링부트 시큐리티 & JWT 강의
6강을 시작하면서 구글 클라우드 api 화면에서 새 프로젝트를 만들려고 여러 번 시도를 하였으나 만들어지지 않습니다. 왜 그런 걸까요
미해결
스프링부트 시큐리티 & JWT 강의
만약 이 네이버 로그인까지 진행하고 로그인을 완료하면 index 페이지로 이동을 하는데, jwt토큰을 생성하려면 어떻게 해야 되나요? Service 에서 생성하고 적용하면 되는 건가요?
미해결
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
무료와 프리미엄으로 미들웨어를 확장시킬 때 user모델에는 domain.type이 없기 때문에 undefined가 나오고 있습니다. 이때 table을 수정해야하는지 domain을 불러와서 코드를 짜야하는지 고민이되서 질문드려봅니다! 현재까지 코드 수정사항입니다! const limiter = rateLimit({ widowMs: 60 * 1000, max: (req, res) => { console.log("req.user.type:", req.user.type); if (req.user?.type === "premium") { return 10; } return 2; }, handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode, message: `1분에 ${ req.user?.type === "premium" ? "10" : "2" } 회만 요청 할 수 있습니다`, }); console.log(req.user.type); }, }); exports.apiLimiter = async (req, res, next) => { let user; console.log("user1:", user); console.log("res.locals.decoded:", res.locals.decoded); if (res.locals.decoded) { user = await User.findOne({ where: { id: res.locals.decoded.id } }); console.log("user3:", user); } req.user = user; console.log("user2:", user); limiter(req, res, next); };
미해결
스프링부트 시큐리티 & JWT 강의
강의를 다 수강하고 깃허브 코드 참조하여 작성했습니다. 현재 SecurityConfig 코드는 다음과 같습니다. @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig{ private final UserRepository userRepository; private final CorsConfig corsConfig; @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http .csrf(AbstractHttpConfigurer::disable) .sessionManagement((sessionManagement) -> sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS) ) .formLogin(withDefaults()) .httpBasic(withDefaults()) .apply(new MyCustomDsl()) .and() .authorizeRequests(requests -> requests .requestMatchers("/user/**").authenticated() .requestMatchers("/admin/**").access("hasAuthority('ADMIN')") .anyRequest().permitAll() ) .build(); } public class MyCustomDsl extends AbstractHttpConfigurer<MyCustomDsl, HttpSecurity> { @Override public void configure(HttpSecurity http) throws Exception { AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); http .addFilter(corsConfig.corsFilter()) .addFilter(new JwtAuthenticationFilter(authenticationManager)) .addFilter(new JwtAuthorizationFilter(authenticationManager, userRepository)); } } } filterchain에서 and()에 오류가 발생합니다. 'and()' is deprecated and marked for removal 로 나오는데 and가 deprecated된 거 같지는 않고 커스텀 필터를 적용하는 것에서 뭔가 문제가 있지 않을까 싶습니다만 이틀째 해결을 못하고 있어 문의남깁니다ㅠㅠ
미해결
스프링부트 시큐리티 & JWT 강의
안녕하세요 강사님. 스프링 환경에서 작업 진행 중에 JWT를 구현하고자 하는데, 강사님 수업도 마찬가지이며 구글링해봐도 정보들 대부분이 스프링 부트 환경에서 JWT 구현하는 내용들이라 궁금합니다. 스프링 부트가 아닌 스프링 환경에서도 JWT 구현이 가능한가요? 가능하다면 스프링 부트에서 구현하는 방식을 따라도 될까요?
해결됨
스프링부트 시큐리티 & JWT 강의
SecurityConfig 작성후 계속하여 로그아웃 시도시 로그인 화면으로 납치되어 정상적인 학습이 불가능합니다. --> 로그아웃 시도할경우 로그인 string 리턴
미해결
스프링부트 시큐리티 & JWT 강의
안녕하세요. jwt를 사용하다가 jwt의 subject는 email, 그 외에 사용자의 닉네임과 같은 정보를 claims 에 넣었습니다. 그런데 이렇게 사용자의 정보가 변경될 때 특히 email이 변경될 때는 토큰을 재발급 받아줘야 사용 가능한 토큰이 되는데 만약 claims에 없는 비밀번호와 같은 보안과 관련된 정보를 변경했을 때는 새 토큰을 발급 받아도 사용자가 이전에 발급 받은 토큰으로 서비스에 접근할 때 어떻게 불가능한 토큰이라고 알 수 있는지 모르겠습니다. 토큰의 유효성을 검사하는 코드에서 db에서 사용자의 정보 수정일 이전 발행된 토큰이면 유효하지 않은 토큰이라고 하는 편이 나을지 고민입니다. 만약 이렇게 한다면 사용자의 정보를 수정할 때마다 새로운 토큰을 발급해줘야 된다는 점이 신경쓰입니다. Date date = Date.from(user.getModifiedDate().atZone(ZoneId.systemDefault()).toInstant()); // 토큰 발행일이 유저 데이터 수정일 이전이면 유효하지 않은 토큰임 if(claims.getBody().getIssuedAt().before(date)) { throw new CustomException(ErrorCode.VALIDATION_ERROR, "유효하지 않은 토큰입니다."); } 매번 새로운 토큰을 발급받게 하는 게 좋은 방법일까요?
미해결
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
[제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 안녕하세요! 초보 개발자입니다 회사에서 NCP를 활용하여 배포 하려고하는데 강좌에 나오는 AWS 배포방식과 동일하게 진행하면 되는걸까요.,? 물어볼곳이 없어 질문드립니다
미해결
스프링부트 시큐리티 & JWT 강의
현재 제 상황은 이러합니다 Oauth2Service에서 검증을 하고 여기서 회원 생성을 할 수 있습니다. (현재는 빼놓은 상태) 그리고 successhandler까지 구현했습니다. 이 상태입니다. 근데 저는 로그인을 성공했을 경우, 핸들러를 타지 않고 8080:/ 주소로 이동합니다. 이러한 경우에 어떻게 토큰을 발급하고 적용할 수 있는지 모르겠습니다. apply로 정의한 함수때문에 핸들러를 거치지 않는 걸까요? apply로 정의한 함수는 강사님 JWT 강의랑 똑같습니다.
해결됨
Spring Boot JWT Tutorial
아래 코드와 같이 에러 발생하는 분들...바보 같았네요. User principal = new User(claims.getSubject(), "", authorities); import me.{..}.jwttutorial.entity.User; 이 아니고 import org.springframework.security.core.userdetails.User; 입니다
해결됨
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
S3 서비스 진행 중, 로컬에서 실행하면 페이지는 출력되는데 로그인시도를 하면 저런 메시지가 출력됩니다. 제가 보기엔 레디스 연결과 문제가 있는 것 같은데 어떻게 접근하면 좋을까요?
해결됨
Spring Boot JWT Tutorial
@Bean public WebSecurityCustomizer configure(){ return (web) -> web.ignoring() .requestMatchers(new AntPathRequestMatcher("/h2-console/**")) .requestMatchers(new AntPathRequestMatcher("/favicon.ico")); } @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http .authorizeRequests() .requestMatchers(new AntPathRequestMatcher("/api/hello")).permitAll() .anyRequest().authenticated(); return http.build(); }
미해결
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
이미지 형식을 보낼 때에는 form태그로 보내는 것이 아니라 이벤트 리스너를 통해 폼 데이터에 넣어서 보내는데 굳이 form태그의 enctype속성으로 "multipart/form-data"를 할당할 필요가 있었는지 궁금합니다.
미해결
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
몽고쉘 다운로드는 윈도우 유저만 해당인가요?
해결됨
[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
controllers/auth.ts의 passport.authenticate("local", (authError, user, info) => { ... 부분에서 콜백함수의 매개변수들에 "매개 변수에는 암시적으로 'any' 형식이 포함됩니다.ts(7006)" 이런 에러가 발생해서 const callback: AuthenticateCallback = (authError, user, info) => { ... 이렇게 분리해서 타입을 붙여줬고, 매개변수 에러는 없어졌지만 밑에 if (!user) { // 로직 실패 (유저가 없을 때) return res.redirect(`/?loginError=${info.message}`); } 여기에서 info에선 "(parameter) info: string | object | (string | undefined)[] | undefined 개체가 'undefined'인 것 같습니다.ts(2532)" 에러가 뜨고 message에선 "'string | object | (string | undefined)[]' 형식에 'message' 속성이 없습니다. 'string' 형식에 'message' 속성이 없습니다.ts(2339)" 에러가 떠서 if (!user) { // 로직 실패 (유저가 없을 때) const infoWithMessage = info as { message: string }; return res.redirect(`/?loginError=${infoWithMessage.message}`); } 이런식으로 타입에러 처리를 해줬습니다. 그런데 테스트 코드 짤 때 100%가 나왔다 하더라도 의미없는 테스트 코드를 짤 수 있다고 경고하신 것처럼 이것도 타입스크립트 에러 처리를 해도 타입스크립트를 제대로 활용해서 타입 명시를 한 것인지, 아니면 그냥 에러 지우기만을 위해서 꼼수를 부린 것인지 어떻게 판단해야 할 지 모르겠습니다. 위 경우에 제대로 사용한 것이 맞는지, 어떤 기준으로 제대로 TS를 사용했다 판단하는 것인지 궁금합니다.