PasswordEncoderSpring Security에서 제공하는 인터페이스로, 비밀번호 암호화와 비교를 위한 표준 메서드를 정의하고 있습니다. 이 인터페이스를 구현한 구현체를 사용하면 비밀번호를 안전하게 저장하고 검증할 수 있습니다.PasswordEncoder 메서드encode(CharSequence rawPassword): 원본 비밀번호를 암호화하여 해시 값을 반환합다.matches(CharSequence rawPassword, String encodedPassword): 원본 비밀번호와 암호화된 비밀번호가 일치하는지 검증합니다.upgradeEncoding(String encodedPassword): 기존에 저장된 비밀번호의 암호화 방식을 업그레이드할 때 사용합니다.PasswordEncoder 구현..
소셜로그인 Security 공부를 하다가 클래스에 @Configuration 지정을 하고 빈을 등록하는 과정 중에 csrf라는 단어를 만나 궁금해서 찾아보게 되었습니다.CSRF(Cross-Sitr Request Forgery)웹 애플리케이션의 보안 취약점 중 하나로써 사용자의 인정된 세션을 이용해 악의적인 요청을 보내는 공격 기법을 뜻합니다.사용자가 웹 사이트에 로그인하면 세션 정보가 생성됩니다.공격자가 사용자를 속여 악의적인 요청(예: 계좌 이체, 비밀번호 변경 등)을 보내도록 합니다.웹 서버는 사용자의 세션 정보가 유효하다고 판단하여 요청을 처리합니다.결과적으로 사용자의 의도와 상관없이 공격자의 목적이 달성됩니다.CSRF 공격을 방지하기 위해서는 CSRF 토큰을 사용하는 것이 일반적인 방법입니다. C..
BCryptPasswordEncoderBCryptPasswordEncoder는 Spring Security에서 제공하는 비밀번호 암호화 유틸리티 클래스입니다.이 클래스는 BCrypt 해싱 함수를 사용하여 비밀번호를 안전하게 저장하고 검증을 할 수가 있습니다.보안성: BCrypt 알고리즘은 salt 값을 사용하여 비밀번호 해싱을 수행하므로, 비밀번호 데이터베이스가 유출되더라도 비밀번호를 쉽게 복호화할 수 없습니다.속도 조절: BCrypt 알고리즘의 반복 횟수를 조절할 수 있어, 비밀번호 해싱 속도를 조절할 수 있습니다. 이를 통해 무차별 대입 공격에 대한 보안성을 높일 수 있습니다.비교 연산의안전성: BCryptPasswordEncoder는 비밀번호 비교 연산 시 타이밍 공격에 안전한 방식으로 구현되어 있..
valueOf()Java에서 기본 데이터 타입을 문자열로 변환하는 데 사용되는 정적 메서드입니다. 이 메서드는 각 기본 데이터 타입의 Wrapper 클래스에 정의되어 있습니다.문자열 생성: 기본 데이터 타입의 값을 문자열로 변환하여 새로운 문자열 객체를 생성합니다.문자열 비교: 기본 데이터 타입의 값을 문자열로 변환하여 다른 문자열과 비교할 수 있습니다.데이터 타입 변환: 문자열을 기본 데이터 타입의 값으로 변환할 수 있습니다public class ValueOfExample { public static void main(String[] args) { // 정수 타입 변환 int intValue = 42; String intString = String.valueO..
StringBuffer 주요 Methodstringbuffer는 Java에서 문자열을 동적으로 생성하고 수정할 수 있는 클래스입니다. StringBuffer 클래스는 다음과 같은 주요 메서드를 제공합니다:append(): 문자열을 StringBuffer 객체에 추가합니다.insert(): 특정 위치에 문자열을 삽입합니다.replace(): 문자열의 일부를 다른 문자열로 대체합니다.delete(): 문자열의 일부를 삭제합니다.reverse(): 문자열의 순서를 반대로 변경합니다.length(): 문자열의 길이를 반환합니다.capacity(): StringBuffer 객체의 현재 용량을 반환합니다.setLength(): StringBuffer 객체의 길이를 변경합니다.public class StringBuf..
application.yml fileapplication.yml 파일은 Spring Boot 애플리케이션에서 사용되는 주요 설정 파일 중 하나입니다.이 파일은 "YAML 형식"을 사용하여 애플리케이션의 다양한 설정 정보를 저장합니다.Spring Boot 애플리케이션의 기본 구성 파일로, 애플리케이션이 시작될 때 자동으로 로드됩니다. 이 파일에는 데이터베이스 연결 정보, 서버 포트 번호, 로깅 설정 등 애플리케이션의 전반적인 구성 정보가 포함됩니다.server: port: 8080spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: myuser password: mypassword driver-class-name:..
Config 파일Config 파일은 애플리케이션의 설정 정보를 저장하는 파일입니다. 이 파일은 애플리케이션이 실행될 때 읽어들여 사용됩니다. Config 파일은 일반적으로 애플리케이션의 동작을 제어하거나 환경 설정을 관리하는 데 사용됩니다.1.properties filedatabase.url=jdbc:mysql://localhost:3306/mydbdatabase.username=myuserdatabase.password=mypasswordProperties 파일: key-value 쌍으로 구성된 텍스트 파일입니다.2.yaml파일database: url: jdbc:mysql://localhost:3306/mydb username: myuser password: mypassword YAML 파일: 계..
thymeleafThymeleaf는 Java 기반의 템플릿으로, Spring Boot 애플리케이션에서 널리 사용되는 뷰 기술입니다. Thymeleaf는 HTML, XML, JavaScript, CSS 등의 템플릿 파일을 동적으로 렌더링하여 클라이언트에게 전달할 수 있습니다.상단에 를 작성해주어야 합니다.Welcome, Guest! This is the admin panel. This is a default message.This is some HTML content. My Website ... © 2023 My Website Page Title Page content goes here. 변수 표현식:${...}를 사용하여 모델 데이터에 접근할 수 있습니다..
@RestController용도로는 RESTful API 개발에 적합합니다. 클라이언트(예: 모바일 앱, 단일 페이지 애플리케이션)와 데이터를 JSON 형식으로 교환하는 경우에 사용됩니다.반환타입으로는 메서드가 기본적으로 객체를 반환하며, 해당 객체는 자동으로 JSON 형식의 HTTP 응답 본문으로 변환됩니다.@RestController@RestController@RequestMapping("/api/users")public class UserController { private final UserService userService; public UserController(UserService userService) { this.userService = userService; ..
Spring Boot에서 데이터 소스 설정application.properties 또는 application.yml 파일에 데이터베이스 연결 정보 설정# application.propertiesspring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=myuserspring.datasource.password=mypasswordspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver JPA 설정 (application.properties나 application.yml에 설정.)# application.propertiesspring.jpa.hibernate.ddl-aut..