Backend/spring (Boot) 27

[Spring Security] Web vs WebFlux Spring Security 설정

📌 Spring Security 설정 방법 비교Spring Security 설정 방식은 Spring MVC(Web)와 Spring WebFlux에서 차이가 있다!! 🚀아래에서 클래스 차이, 필터 적용 방식, UserDetailsService 사용 방식을 비교해보자. 😊 🔥 Spring MVC vs WebFlux 차이 요약 Spring MVC (Web)Spring WebFluxSecurity 설정 클래스@EnableWebSecurity@EnableWebFluxSecurityFilterChain 타입SecurityFilterChainSecurityWebFilterChain요청 인증 설정authorizeHttpRequests()authorizeExchange()필터 추가 방식addFilterBefore..

web vs webflux

📌 Spring Boot와 각 Starter(web, webflux)의 역할✅ 1. Spring BootSpring Boot는 Spring 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크.애플리케이션 실행을 자동화하고, 필요한 설정을 최소화하는 역할을 한다.🎯 Spring Boot가 하는 일1️⃣ Spring 설정 자동화@SpringBootApplication을 사용하면 @Configuration, @ComponentScan, @EnableAutoConfiguration이 포함됨application.properties 또는 application.yml을 기반으로 자동 설정 수행2️⃣ 내장 웹 서버 제공Tomcat, Jetty, Undertow, Netty 등을 내장하여 별도 WAS 설치 없이..

[Spring Security] Spring Security 임시 계정

📌 Spring Security 임시 계정Security filterChain 에서 권한 검사를 설정한 경우 이를 통과하기 위해 로그인이 필요!!기본 폼을 활성화 하면 자동으로 로그인창이 뜬다. 이때 DB연결 전 이라면 임시계정이 필요하다. 📖 인증 필터http.authorizeExchange(exchanges -> exchanges.anyExchange().authenticated()); 📖 기본 로그인 폼 활성화http.authorizeHttpRequests() .anyRequest().authenticated() .and() .formLogin(); // 기본 로그인 폼 활성화 📌 Spring Security 계정 생성 방법✅ 1. 자동 생성 - 로그 확인Sp..

[Spring Security] Spring Security란?

📌 1. Spring Security란?Spring Security는 Spring Framework의 서브 프로젝트로, 애플리케이션의 인증(Authentication)과 권한 부여(Authorization)를 처리하는 보안 프레임워크 🛠 Spring Security 핵심 기능 🔹 1. 인증(Authentication)사용자가 누구인지 확인하는 과정. 👉 Spring Security에서 지원하는 인증 방식폼 로그인 (formLogin()) – ID/PW 입력 후 세션 기반 로그인HTTP Basic 인증 (httpBasic()) – 간단한 API 인증 방식 (ID/PW Base64 인코딩)JWT 기반 인증 – 토큰을 이용한 인증 방식OAuth2 로그인 (oauth2Login()) – Google, G..

DTO 작성 방법 - Array 및 Object 타입

DTO(Data Transfer Object)는 애플리케이션의 계층 간 데이터를 간단히 전달하기 위해 사용되는 객체입니다. 특히 DTO는 데이터를 캡슐화하여 객체로 전달함으로써 데이터 일관성을 유지하고, 불필요한 비즈니스 로직을 생략함으로써 성능을 높일 수 있습니다. 이 글에서는 DTO의 작성 방법을 키워드 및 예제와 함께 설명하며, Array나 Object 타입의 필드가 포함된 경우의 작성법도 함께 다루겠습니다.1. DTO 작성의 기본 구성DTO는 주로 다음 요소로 구성됩니다.필드: DTO가 전달할 데이터. 주로 private 접근 제어자로 선언하여 외부 접근을 제한합니다.기본 생성자: 객체 생성 시 기본 상태로 생성할 수 있도록 빈 생성자를 추가합니다.게터/세터: 각 필드에 접근할 수 있도록 gett..

MyBatis 연결 (Spring DAO 작성 방법)

목차1. 매퍼 인터페이스 사용   *MyBatis Generator를 사용하여 생성하는 방법2. SqlSession 직접 사용 3. 어노테이션 기반 매퍼 0. 시작하기 전에0-1. Spring boot mybatis 의존성 추가pom.xml에 MyBatis 의존성을 추가합니다. org.mybatis.spring.boot mybatis-spring-boot-starter 3.0.6 0-2. Spring 공통 설정  0-3. MyBatis-Spring 통합 라이브러리 사용 준비MyBatis-Spring 통합은 Spring Framework와 MyBatis를 함께 사용하는 방식으로, 의존성 주입(DI) 및 트랜잭션 관리를 쉽게 할 수 있습니다.- applica..

Spring WebSocket

Spring WebSocket 사용 방법 1. 의존성 추가 Maven pom.xml 파일에 다음과 같이 의존성을 추가합니다: org.springframework spring-messaging Gradle build.gradle 파일에 다음과 같이 의존성을 추가합니다: implementation 'org.springframework:spring-messaging' 2. WebSocket 설정 WebSocket 엔드포인트를 등록하는 설정 클래스를 작성. WebSocketConfigurer 인터페이스를 구현하거나 @EnableWebSocket을 사용하여 WebSocket 활성화 *@EnableWebSocket을 사용하면 WebSocket 관련 빈들이 자동으로 등록됨. *WebSocketConfigurer을 i..

비밀번호 암호화/인증 (spring security 계정 생성)

암호화 사용자를 생성 할 때 DB에 암호화 하여 비밀번호 저장. @RequestMapping(value = "/passwordEncode", method = RequestMethod.POST) @ResponseBody public String passwordEncode(@RequestBody String password, HttpServletRequest request) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(10); String hashedPassword = passwordEncoder.encode(password); return hashedPassword; } 인증 passwordEncoder.matches(presen..

[spring security] 3. UserDetailsService, UserDetails

UserDetailsService, UserDetails는 유저 정보를 가져와 비교하기 위해 쓰이는 인터페이스입니다. 1. UserDetailsService UserDetailsService는 Spring Security가 사용자 정보를 가져오는 역할을 담당하는 인터페이스입니다. 보통 사용자 정보는 데이터베이스나 외부 인증 소스에서 가져오는데, UserDetailsService 인터페이스 구현 시 오버라이드 되는 loadUserByUsername 메서드는 사용자 이름을 기반으로 사용자 정보를 조회하는 역할을 합니다. public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFo..

[spring security] 2. configure 작성

configure 작성 스프링 시큐리티 구성 파일을 나타내며 다음과 같은 기능을 수행합니다: PasswordEncoder 빈 설정 비밀번호 인코딩을 위한 BCryptPasswordEncoder를 빈으로 등록합니다. CorsConfigurationSource 빈 설정 CORS(Cross-Origin Resource Sharing) 설정을 구성하여 특정 출처로부터의 요청을 허용합니다. SecurityFilterConfig 클래스: SecurityConfigurerAdapter를 상속받아 커스텀한 보안 필터 설정을 구성합니다. configure(HttpSecurity http) 메서드에서 보안 관련 설정을 수행합니다. CSRF 보호를 비활성화하고, CORS 설정을 적용합니다. 특정 URL 패턴에 대한 접근 권..