시큐리티와 jwt를 사용한 로그인 기능까지 구현한 후, JWT를 어디에 저장하는 것이 좋을지에 대해 고민해보게 되었습니다. JWT 모바일이나 웹의 사용자 인증을 위해 사용하는 암호화된 토큰. JWT 정보를 request에 담아 사용자의 정보 조회, 수정 등의 작업을 수행할 수 있습니다. XSS (Crose Site Scripting) 악의적인 사용자가 웹 애플리케이션에 악성 스크립트를 삽입하여 사용자 브라우저에서 실행되도록 하는 공격 기법입니다. 저장형 XSS, 반사형 XSS, DOM 기반 XSS 등의 유형이 있습니다. CSRF (Cross Site Request Forgery) 정상적인 request를 가로채 피해자인 척 하고 백엔드 서버에 변조된 request를 보내 악의적인 동작을 수행하는 공격 기..
권한까지 구현되었으니 이제 로그인 기능을 구현해보겠습니다. 먼저, 서버 쪽을 하나씩 살펴보면 기본적으로 UserEntity와 UserDTO 그리고 LoginDTO가 있습니다. LoginDTO.java package com.example.demo.dto; import lombok.*; @Getter @Setter @ToString @NoArgsConstructor @Data public class LoginDTO { private String userId; private String password; } UserRepository.java package com.example.demo.repository; import com.example.demo.entity.UserEntity; import org.spr..
Hibernate: select r1_0.user_id, r1_0.role from user_role r1_0 where r1_0.user_id=? 2024-04-08T12:15:58.231+09:00 WARN 23656 --- [nio-8082-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 1054, SQLState: 42S22 2024-04-08T12:15:58.231+09:00 ERROR 23656 --- [nio-8082-exec-2] o.h.engine.jdbc.spi.SqlExceptionHelper : Unknown column 'r1_0.role' in 'field list' org.springframework.security.a..
1️⃣ 2739 번: 구구단 https://www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 💻 나의 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i = 1; i st = new StringTokenizer(br.readLine(), " "); StringTokenizer의 nextToken() 함수를 쓰면 readLine..
1️⃣ 1330번: 두 수 비교하기 https://www.acmicpc.net/problem/1330 1330번: 두 수 비교하기 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오. www.acmicpc.net 💻 나의 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); if(a>b) System.out.println(">"); else if(a= 90) System.out.println("A"); else if (A >= 80)..