게시글
질문&답변
2024.10.13
도메인형 패키지 구조 질문
안녕하세요! 도메인 주도 개발이라고해서 꼭 특정 패키지 구조로만 해야 도메인 주도 개발인 것은 아니긴해서 말하기 조심 스러운 부분이 있긴하네요! 단순히 controller / service/ dto 기반으로 화면단위로 개발하는것보다는 도메인 주도 개발쪽에 가깝다고는 생각합니다.
- 0
- 1
- 23
질문&답변
2024.09.18
oauth 회원가입 시 필수 추가 정보는 어떤 식으로 받으시나요?
안녕하세요! 인프런 AI인턴이 이미 답을해주었네요! 리소스서버에서 받아오지 않는 정보들은 따로 추가페이지를 만들고 해당 정보들을 다 입력하도록하여 회원가입을 완료하면됩니다.
- 0
- 2
- 45
질문&답변
2024.02.29
Xss 에서 WebConfig 오류 발생됩니다.
안녕하세요. 해당 내용을 확인해보았는데 스프링부트3부터 javax에서 jakarta로 변경되면서 구현해야할 Filter가 수정이 되었습니다 ㅠㅠlucy-xss-filter는 최근에 업데이트가 안되고 있어서 github에 이슈로 등록도 다른분이 해두셨더라구요.lucy-xss-filter 버전이 업데이트 되지 않으면 사용이 안될것으로 보입니다. lucy-xss-filter버전 대응이 되면 추후에 사용할 수 있을 것으로 보이네요https://github.com/naver/lucy-xss-servlet-filter/issues/50
- 0
- 1
- 423
질문&답변
2024.02.29
리프레시 토큰 사용 관련 문의 건
안녕하세요 저도 보안에 대해서 자세히 아는건 아니지만 제가 아는선에서 답변드리겠습니다.https로 전송 시 값 자체를 암호화해서 보내기 때문에 중간에 탈취되더라도 토큰 값 자체를 볼 수는 없을 것 2. 입니다. 카카오 API도 그렇고 다른 it기업들의 API문서를 보더라도 Response Body에 토큰 값을 담아서 반환하고 있습니다.3. Client에 토큰을 저장 시 어디에 저장할지가 사실 더 중요하다고 생각합니다. 참고할만한 블로그들을 첨부드립니다!https://www.google.com/search?q=%ED%86%A0%ED%81%B0+%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8+%EC%A0%80%EC%9E%A5&sourceid=chrome&ie=UTF-8https://blogeon.tistory.com/entry/JWT%EC%9D%98-Refresh-Token%EA%B3%BC-Access-Token%EC%9D%80-%EC%96%B4%EB%94%94%EC%97%90-%EC%A0%80%EC%9E%A5%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C
- 0
- 1
- 204
질문&답변
2024.02.20
applycation.yml 의 readTimeout 이 적용이 안됩니다.
안녕하세요! 최근 문서를 보니 다음과 같이 변경이 되었네요!https://docs.spring.io/spring-cloud-openfeign/docs/4.0.6/reference/html/spring: cloud: openfeign: client: config: default: connectTimeout: 5000 readTimeout: 5000(사진)FeignClientExceptionErrorDecoder에서 오류가나는건은 RetryableException 생성자의 다섯번째 생성자retryAfter가 Date 1개만 존재하였는데 Long을 파라미터로 받는 파라미터가 추가되었습니다. 앞에 타입을 (Long)을 지정해주시면 정상적으로 수행될 것 입니다.@Slf4j public class FeignClientExceptionErrorDecoder implements ErrorDecoder { private ErrorDecoder errorDecoder = new Default(); @Override public Exception decode(String methodKey, Response response) { log.error("{} 요청 실패, status : {}, reason : {}", methodKey, response.status(), response.reason()); FeignException exception = FeignException.errorStatus(methodKey, response); HttpStatus httpStatus = HttpStatus.valueOf(response.status()); if(httpStatus.is5xxServerError()) { return new RetryableException( response.status(), exception.getMessage(), response.request().httpMethod(), exception, (Long) null, response.request() ); } return errorDecoder.decode(methodKey, response); } }
- 0
- 2
- 414
질문&답변
2024.02.18
applycation.yml 의 readTimeout 이 적용이 안됩니다.
안녕하세요!! 스프링부트 버전과 호환이 안되서 정상적으로 동작하지 않는것으로 보이네요버전을 한번 아래처럼 바꿔보시겠어요?set('springCloudVersion', "2023.0.0")(사진)
- 0
- 2
- 414
질문&답변
2024.02.13
강사님 Swagger에 질문드립니다.
안녕하세요! 말씀하신것처럼 springdoc를 사용하는게 더 좋을꺼 같습니다.스프링부트도 버전이 계속 신규로 나오고 다른 라이브러리도 계속 변경될 것 인데 가능하면 최신버전으로 바꾸시면 좋을꺼 같네요!강의에서 진행했던 기능을 동일하게 springdoc에서도 어떻게 사용하는지 정도만 한번 찾아보면 될꺼 같습니다.
- 0
- 2
- 185
질문&답변
2024.01.18
kakao token 발급 시 에러
에러를 다시 보니깐 KakaoTokenClient로 카카오 토큰을 받아올 때 변환이 안되서 그렇군요! Response의 contentType을 text/html 로 인식하는거 같네요혹시 모르니 코드도 복사해서 붙여 넣어보시면 좋을꺼 같습니다. @GetMapping("/oauth/kakao/callback") public @ResponseBody String loginCallback(String code) { String contentType = "application/x-www-form-urlencoded;charset=utf-8"; KakaoTokenDto.Request kakaoTokenRequestDto = KakaoTokenDto.Request.builder() .client_id(clientId) .client_secret(clientSecret) .grant_type("authorization_code") .code(code) .redirect_uri("http://localhost:8080/oauth/kakao/callback") .build(); KakaoTokenDto.Response kakaoToken = kakaoTokenClient.requestKakaoToken(contentType, kakaoTokenRequestDto); return "kakao toekn : " + kakaoToken; } KakaoTokenClient @FeignClient(url = "https://kauth.kakao.com", name = "kakaoTokenClient") public interface KakaoTokenClient { @PostMapping(value = "/oauth/token", consumes = "application/json") KakaoTokenDto.Response requestKakaoToken(@RequestHeader("Content-Type") String contentType, @SpringQueryMap KakaoTokenDto.Request request ); }KakaoTokenDto의 Response에서 기본생성자가 없을 경우 오류가 발생하시는 분들도 있으셔서@NoArgsConstructor와 @AllArgsConstructor도 한번 추가해 보시면 좋을꺼 같습니다.public class KakaoTokenDto { @ToString @Builder @Getter @NoArgsConstructor @AllArgsConstructor public static class Response { private String token_type; private String access_token; private Integer expires_in; private String refresh_token; private Integer refresh_token_expires_in; private String scope; } }
- 0
- 2
- 518
질문&답변
2024.01.17
kakao token 발급 시 에러
안녕하세요! 혹시 @ResponseBody가 빠졌는지 확인해보시면 좋을꺼 같네요.에러메세지를 보면 text/html을 찾을 수 없다 이런식으로 나오는데 loginCallback에서는 json을 클라이언트로 반환해줘야합니다.public @ResponseBody String loginCallback(String code) {
- 0
- 2
- 518
질문&답변
2024.01.16
아직 초반부분인데 질문이있습니다.
해당 강의는 스프링 시큐리티에대한 강의는 아니었고, 기본적인 소셜 로그인 구현에 대해서 다뤘습니다. 스프링 시큐리티 또한 JWT를 받아서 세션에 해당 회원 정보를 저장 후 사용하는 형식으로 사용이 가능합니다. 인프런에 JWT와 스프링시큐리티를 연동해서 사용하는 방법에 대한 무료 강의가 있으니 해당 강의도 학습해보면 좋을꺼 같습니다. 이번 강의는 사실상 View를 반환하는게 아니라 api 응답 결과를 반환하는 템플릿 프로젝트 구현이 주여서 타임리프는 크게 사용한 부분이 없긴합니다.
- 0
- 1
- 133