Spring boot 10

Springboot 3.x에 swagger 적용 ( With. SpringDocs )

개요Spring Boot 2.x에서 사용하던 Springfox 라이브러리가 더 이상 유지 관리되지 않아, Spring Boot 3.x에서 Swagger를 적용하려면 SpringDocs 라이브러리를 사용해야 합니다. 이 가이드는 SpringDocs를 사용하여 Swagger를 설정한다.환경 설정SpringBoot: 3.3.1JDK: 17Build Tools: GradleEditor: IntelliJGradle 의존성 추가build.gradle 파일에 다음과 같은 의존성을 추가합니다:implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'2. Swagger 설정 파일 작성Swagger 사용을 위한 설정 파일을 작성합니다. 아래는 기본적인..

Swagger, Springfox, Springdoc의 차이점

SwaggerRestful한 웹 서비스를 만들 때 API 문서를 자동으로 만들어주고, API를 직접 테스트할 수 있는 UI를 제공해준다.OpenAPI Specification(REST API에 대한 API 설명 형식으로 직저 소스 코드나 문서를 보지 않고도 이해할 수 있도록 시각화하기 위한 인터페이스 파일의 사양을 말함.)을 기반으로 구축된 오픈 소스이다.대표적인 라이브러리로는 Springfox Swagger, Springdoc이 존재한다.Springfox SwaggerSpring framework를 사용하는 프로젝트에서 Swagger를 이용할 수 있게 도와주는 라이브러리mvnrepository기준 2015년에 처음 나와 2020년 7월에 3.0.0 버전을 마지막으로 업데이트 되고 있지 않다.2018년까..

Authorize HttpServletRequests

개요Spring Security를 사용하면 요청 수준에서 권한을 모델링 할 수 있습니다 .예를 들어 Spring Security를 사용하면 모든 페이지에 /admin하나의 권한이 필요하고 다른 모든 페이지에는 인증만 필요하다고 말할 수 있습니다 .기본적으로 Spring Security는 모든 요청이 인증되어야 합니다. 즉, 인스턴스를 사용할 때마다 권한 HttpSecurity부여 규칙을 선언해야 합니다.인스턴스 가 있을 때마다 HttpSecurity적어도 다음을 수행해야 합니다.http .authorizeHttpRequests((authorize) -> authorize .anyRequest().authenticated() )대부분의 경우 승인 규칙은 이보다 더 복잡하므로 다음 사..

Password Storage

개요Spring Security에 있는 PasswordEncoder를 사용하기 위해 알아보고자 한다.Spring Security의 PasswordEncoder인터페이스는 비밀번호를 안전하게 저장하기 위해 비밀번호의 단방향 변환을 수행하는 데 사용됩니다.PasswordEncoder단방향 변환인 경우 비밀번호 변환이 양방향이어야 하는 경우(예: 데이터베이스에 인증하는 데 사용되는 자격 증명을 저장하는 경우)에는 유용하지 않습니다.일반적으로 PasswordEncoder인증 시 사용자가 제공한 비밀번호와 비교해야 하는 비밀번호를 저장하는 데 사용됩니다.DelegatingPasswordEncoder기본 PasswordEncoder가 BCryptPasswordEncoder와 비슷해질 것으로 예상할 수 있지만 이는 ..

Spring boot 3.x 이후 설정 코드

개요Spring Boot 가 3.x Version 으로 들어서면서 Minor Version 이 바뀌었다보니확실히 생각보다 변화된 부분이 많습니다.Spring Boot 3.x.x 이전 설정 코드기존 코드는 아래와 같이 Builder 형식으로 추가적인 설정을 해줬어야 했습니다..disable() 이 대표적인 예시라고 보면 됩니다.Security 에서는 5.2.x 버전부터 Lambda DSL 방식으로 설정할 수 있도록 변경이 이루어진 적이 있습니다. 따라서, 예로 authorizeRequests() 에서 람다를 사용해서 표현할 수 있도록 되었습니다.@Configuration@RequiredArgsConstructor@EnableWebSecuritypublic class SecurityConfig { pr..

BCryptPasswordEncoder란?

1. BCryptPasswordEncoder란?스프링 시큐리티(Spring Seurity) 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스입니다.BCryptPasswordEncoder는 BCrypt 해싱 함수(BCrypt hashing function)를 사용해서 비밀번호를 인코딩해주는 메서드와 사용자의 의해 제출된 비밀번호와 저장소에 저장되어 있는 비밀번호의 일치 여부를 확인해주는 메서드를 제공합니다.PasswordEncoder 인터페이스를 구현한 클래스입니다.생성자의 인자 값(verstion, strength, SecureRandom instance)을 통해서 해시의 강도를 조절할 수 있습니다.BCryptPasswordEncoder는 위에서 언급..

Spring Security - JPA 연동하기

InMemoryUser 방식은 문제점이 존재하기때문에 DATABASE와 연동하는 방법을 사용한다.방법이 다양하지만 그중에서도 JPA와 연동하는 방법을 사용한다.의존성 추가하기JPA 의존성을 추가하고, DATABASE는 h2 를 사용하도록 한다.!https://blog.kakaocdn.net/dna/c6uds7/btqx8MbfeK7/AAAAAAAAAAAAAAAAAAAAAP8x5C5CLUYtSbhhobf3h_slhgo3kQTzpPFmp4bYf6-M/img.pngAccountUser?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip=&allow_referer=&signature=8tTKhPzSgpOwWcP2B3nb9LIBvGI%3D 정보에 해당하는 Account Entity 를 생성한다.username은 유일한 값이기 때문에 Unique 제약조건을 걸어준다.!https://blog.kakaocdn.net/dna/NZVmI/btqx9zvwsWl/AAAAAAAAAAAAAAAAAAAAAPtpihmbFzxUg7w0cJp7OndrTBo0B1DQS4ifzkPN2R4_/img.pngJpaRepository?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1767193199&allow_ip=&allow_referer=&signature=3GMRhlgkUcRgZ0S2PRGkJjnFm0k%3D 를 상속받는 A..

logBack (로그 레벨 설정, 프로필별 로그 설정)

개요log4j 이후에 출시된 Java 기반 Logging Framework 중 하나로 SLF4j 의 구현체이고Spring Boot 라면 기본적으로 포함되어 있다. log4j와 성능을 비교했을 때도 logback이 월등하다는 평가가 많다사용방법.yml 또는 .properties파일에 프로필을 아래와 같이 설정해야 합니다.# 프로필 설정 spring.profiles.active=dev #spring.profiles.active=prod #루트 레벨(전체 레벨) 전체 로깅 레벨 지정 logging.level.root=info #profiles에 있는 이름으로 .xml사 logging.config=classpath:logback-${spring.profiles.active}.xml프로필에 해당하는 .yml(.p..

Spring Data JPA

개요Spring Data JPA는 Jakarta Persistence API(JPA)에 대한 Repository 지원을 제공합니다.JPA 데이터 소스에 액세스해야 하는 일관된 프로그래밍 모델로 애플리케이션 개발을 용이하게 합니다간단한 사용법Examples Repository ( 예제 Repository )The GitHub spring-data-examples repository hosts several examples that you can download and play around with to get a feel for how the library works.아래는 간단한 사용법 예제 코드입니다.Entity ( Person )@Entityclass Person { @Id // key 값을 의미 ..

spring-boot-devtools

spring-boot-devtools개요devtools는 Spring boot에서 제공하는 개발 편의를 라이브러리로, 실행 후 브라우저에서 보여주는 내용을 수정하려면 원래 어플리케이션을 재 시작해야 하지만 dev tools를 이용하여 이러한 불편한 점을 해결할 수 있습니다.크게 아래의 5가지의 기능을 제공한다고 docs에서 알려주고 있습니다.Property DefaultsAutomatic RestartLive ReloadGlobal SettingsRemote Application사용 법사용을 위해 아래와 같이 Maven 또는 Gradle에 추가 해야 합니다.Maven org.springframework.boot spring-boot-devtools true ..

728x90
반응형