본문 바로가기

분류 전체보기374

[Spring Boot] JWT HMAC 암호화 [Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한hong-study.tistory.com이전 글에서 JWT는 무엇이고 왜 사용하는지에 대해 설명하였다.이번에는 JWT를 직접 구현해봄으로써, 어떤 동작원리를 가지고 있는지 이해해보려고 한다.JAVA -JWT 라이브러리 추가 build.gradle implementation 'com.auth0:java-jwt:4.4.0'build.gradle에 아래와 같이 라이브러리를 추가한다.다른 버전이나 다른 개발 환경에서 사용하고 싶다면 아래에서 jwt를 검색해서 사용하면 된다.. 2024. 5. 30.
[Spring Boot] JWT [Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한 스프링 모듈이다. 로그hong-study.tistory.com이전까지 Spring Security에 대해서 어떻게 구성되어 있고, 어떻게 구현하는지에 대해서 공부를 하였다.오늘은 Spring JWT에 대해서 공부하려고 한다.JWT, Json Web TokenJWT는 유저를 인증하고 식별하기 위한 토큰 기반 인증이다.토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다.Restful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고 받을 수 있게 된다.세션(S.. 2024. 5. 30.
[Spring Boot] 어노테이션을 활용해 권한 설정하기 @EnableGlobalMethodSecurity(prePostEnabled = true)메서드에 권한 설정 어노테이션 활성화위 어노테이션을 securityConfig 파일 붙여준다.@Configuration // 설정 파일@EnableWebSecurity // 이 설정 파일을 시큐리티 필터에 등록@EnableGlobalMethodSecurity(prePostEnabled = true)public class SecurityConfig {...생략}Controller@PreAuthorize("hasRole('ROLE_ADMIN')")@GetMapping("/test")public @ResponseBody String test() { return "어노테이션 권한";}여기서 중요하게 봐야하는 것은 @P.. 2024. 5. 29.
[Spring Boot] Spring Security 로그인 처리 로그인 처리하기이전 게시글에서는 회원가입시 권한을 설정하여 로그인을 할 때 어떤 화면으로 그리고 어떤 화면만 접속할 수 있는지 설정하였다. 스프링 부트 2버전 (수업)//시큐리티 6버전 => 스프링 부트 3버전 (문법이 완전 변경" data-og-host="hong-study.tistory.com" data-og-source-url="https://hong-study.tistory.com/375" data-og-url="https://hong-study.tistory.com/375" data-og-image="https://scrap.kakaocdn.net/dn/lNcBc/hyWdfeLzOs/BqqA2JSKRmMy2yvWSaxUIk/img.png?width=437&height=115&face=0_0_43.. 2024. 5. 29.
[Spring Boot] Spring Security 설정 스프링 라이브러리 추가//시큐리티 버전은 스프링버전에 따라 사용방법이 완전히 다릅니다.//시큐리티 5버전 => 스프링 부트 2버전 (수업)//시큐리티 6버전 => 스프링 부트 3버전 (문법이 완전 변경되니 주의)implementation 'org.springframework.boot:spring-boot-starter-security'//시큐리티 타임리프에서 사용implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'//시큐리티 테스트testImplementation 'org.springframework.security:spring-security-test'시큐리티가 처음 설정 되면 모든 요청에 대해서 시큐리가 기본 제공하는 로그인 화.. 2024. 5. 29.
[Spring Boot] Spring Security 스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한 스프링 모듈이다. 로그인의 방식 시큐리티 없는 일반로그인 (일반세션 사용)시큐리티 일반로그인 (시큐리티 세션 사용)시큐리티 JWT 로그인 (서버가 다를 때)시큐리티 OAuth2방식 로그인(제 3자 인증로그인)SSO로그인 용어 인증(Authentication) - 로그인 된 사람권한(Role) - 로그인 된 사람 + role(권한)이 있는사람인가(Authorization) - 권한을 부여하는 행위사용자가 로그인 정보와 함께 인증 요청을 한다.(Http Request)AuthenticationFilter(필터)가 요청을 가로채고, 가로챈 정보를 .. 2024. 5. 27.
[백준/JAVA] 1085번 직사각형에서 탈출 문제한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오.입력첫째 줄에 x, y, w, h가 주어진다.출력첫째 줄에 문제의 정답을 출력한다.입력예제import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); int y = sc.nextInt(); int w = sc.nextInt(); int h = sc.nextInt(); .. 2024. 5. 27.
[백준/JAVA] 27323번 직사각형 문제정수 A, B 가 주어진다. 세로 길이가 A cm, 가로 길이가 B cm 인 아래와 같은 직사각형의 넓이를 cm2 단위로 구하시오.입력표준 입력에 다음과 같은 형태로 입력이 주어진다.출력세로 길이가 A cm, 가로 길이가 B cm인 직사각형의 넓이를 cm2 단위로 구하고, 단위 (cm2)를 생략하여 출력한다.예제 입력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(); int c = a * b; System.out.println(c); .. 2024. 5. 27.
[백준 10988] 팰린드롬인지 확인하기 문제알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.입력첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.출력첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.예제 입력import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Str.. 2024. 5. 27.
[Spring] 파일 업로드 [Spring] AOP, 관점 지향 프로그래밍[Spring] Session, 세션[JSP] 쿠키와 세션 - 세션[JSP] 쿠키와 세션 - 쿠키[JSP] 내장 객체[JSP] GET과 POST[JSP] 태그[JSP] 서버와 클라이언트👨‍💻웹 프로그래밍이란?- 웹 프로그래밍이란, 웹 어플리케이션을hong-study.tistory.com일반 업로드파일 업로드 방식에는 크게 3가지 방법이 존재한다.cos.jar 이용 ( JSP 에서 사용 )commons-fileupload 이용 : 스프링에서 가장 일반적으로 많이 활용 ( 서블릿 스펙 3.0 이전, 이후 모두 사용 가능 )서블릿 3.0 이상에서 부터는 자체적인 파일 업로드가 지원됌Commons-fileupload를 이용한 방식1. 준비사항일반 업로드파일 업로드.. 2024. 5. 26.
반응형