본문 바로가기

웹개발/스프링부트12

Deprecated configuration property 'spring.profiles' 스프링 부트를 최신 버전으로 설치하니 프로퍼티 파일에서 사용하는 profiles가 deprecate가 되었다고 나온다. 다음과 같이 profiles를 config.activate.on-profile로 수정을 해주면 된다. 참조: http://wonwoo.ml/index.php/post/category/web/spring-boot 2021. 6. 29.
스프링부트 로그레벨 설정 참조 : docs.spring.io/spring-boot/docs/2.4.4/reference/htmlsingle/#boot-features-logging Spring Boot Reference Documentation This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe docs.spring.io 로그 .. 2021. 3. 30.
ResponseEntity에 header (httpOnly, secure, cookie ) 세팅하고 json 응답 리턴하기 jwt 구현중에 refreshToken은 httpOnly쿠키로 셋팅하고 accessToken은 json으로 응답을 리턴하는 코드 @RequestMapping(value = "/api/v1/authenticate", method = RequestMethod.POST) public ResponseEntity createAuthenticationToken(@RequestBody JwtRequest authenticationRequest, HttpServletResponse response) throws Exception{ authenticate(authenticationRequest.getUsername(),authenticationRequest.getPassword()); final UserDetails u.. 2021. 3. 18.
스프링부트 profile설정(front 및 api 서버 url 설정하기) 로컬 개발시 cors 설정을 localhost:3000으로 해놓았다가 운영에 적용하면 당연히 cors 오류가 난다. 그래서 url을 로컬 개발과 운영적용시에 나누어서 관리할 필요가 있다. 설정파일을 통해서 한번 적용해보자 먼저 application.yml 파일을 1. application.yml 파일은 로컬개발과 운영으로 분리 2. application.yml 파일에 host url 설정 3. cors 설정 4. production profile 적용 실행 1. application.yml 파일은 로컬개발과 운영으로 분리 spring: profiles: active: local --- spring: profiles: production 2. application.yml 파일에 host url 설정 spr.. 2021. 3. 18.
Spring boot jwt 로그인 구현 Springboot 로그인을 구현해보자. 여기서는 jwt를 이용한 로그인을 구현한다 다음 순서로 진행한다. 1. spring security, jwt gradle 설정 2. property에 시크릿키 설정 3. Jwt util 클래스 작성 4. UserDetailService 작성 5. Jwt 인증 컨트롤러 작성 6. jwt request, response 작성 7. jwt request 필터 작성 8. jwt 인증 엔트리 포인트 작성 9. 스프링 시큐리티 설정 10. 유저 관련 클래스 11. json web token 생성 12. json web tocker 검증하기 1. spring security, jwt gradle 설정 implementation 'org.springframework.boot:s.. 2021. 3. 15.
스프링부트 서블릿 필터 Exception 핸들링 스프링부트에서 exception을 처리할때는 컨트롤러에서 발생한 exception만 핸들링할수 있다. jwt filter를 구현하던중 servlet filter에서 exception이 발생했을때 스프링부트 exception핸들링 처럼 처리하는 방법을 한번 알아본다 1. 에러를 핸들링할 filter를 작성한다. 2. jwt filter에서 오류발생시 exception을 던진다. 3. 사용자 exception을 작성한다. 4. ExceptionHandlerFilter를 JwtRequestFilter전에 호출하도록 설정에 등록한다. 5. 오류를 발생 시키고 오류 json을 확인한다. 1. 에러를 핸들링할 filter를 작성한다. 서블릿 필터에서 오류 발생시 처리할 excpetion handler를 작성한다. .. 2021. 3. 15.
Springboot Exception Handling(스프링부트 exception 핸들링) 스프링부트에서 exception을 처리하는 방법을 알아보자 순서는 다음과 같다 1. 에러코드 정리 enum 클래스로 작성 2. Exception 발생시 응답하는 에러 정보 클래스 작성 3. 사용자 정의 Exception 클래스 작성 4. Exception 발생시 전역으로 처리할 exception handler 작성 5. 사용자등록관련 클래스작성 서비스에서 중복 exception 발생 6. api 실행 및 exception 결과 확인 1. 에러코드 정리 enum 클래스로 작성 @AllArgsConstructor public enum ErrorCode { NOT_FOUND(404,"COMMON-ERR-404","PAGE NOT FOUND"), INTER_SERVER_ERROR(500,"COMMON-ERR-5.. 2021. 3. 10.
스프링 부트에 H2 DB 적용하기 build.gradle 설정 depandency에 작성 dependencies { implementation 'org.springframework.boot:spring-boot-starter' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' testImplementation 'org.springframework.boot:spring-boot-starter-test' developmentOnly 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.p.. 2021. 3. 3.
Spring boot에 OAuth2.0 설정하기 스프링부트에 Oauth2.0 설정을 한번 해보자. spring.io에 상세하게 나와 있으니 아래 주소를 참조하기 바란다. 참조 : spring.io/guides/tutorials/spring-boot-oauth2/ Spring Boot and OAuth2 this tutorial is designed to be completed in 2-3 hours, it provides deeper, in-context explorations of enterprise application development topics, leaving you ready to implement real-world solutions. spring.io Oauth는 신뢰할수 있는 제3자가 인증을 대신 해주는 방식이다. 웹서비스를 구축할.. 2021. 3. 2.
스프링부트 api응답을 json으로 하기 먼저 User라는 클래스를 만든다. package com.example.myapp; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @Setter @Getter @AllArgsConstructor public class User { String email; String name; } controller에 User정보를 받아오는 api를 만든다. @RequestMapping("/api/v1/user") @ResponseBody public User getUser(){ return new User("user@email.com","user name"); } http://localhost:8080/api/v1/user를 .. 2021. 2. 18.