Programming206 [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. [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. [Spring] AOP, 관점 지향 프로그래밍 [Spring] Session, 세션[JSP] 쿠키와 세션 - 세션[JSP] 쿠키와 세션 - 쿠키[JSP] 내장 객체[JSP] GET과 POST[JSP] 태그[JSP] 서버와 클라이언트👨💻웹 프로그래밍이란?- 웹 프로그래밍이란, 웹 어플리케이션을 구현하는 행위입hong-study.tistory.comAOP, Aspect-Oriented-ProgrammingAOP란 관점 지향 프로그래밍으로, 더욱 객체 지향답게를 의미한다.공통코드, 개별코드(비즈니스 로직)을 분리해서 작성한다.java의 공통 기능을 부모클래스로 정의하고 상속 관계롤 사용한다.기존 코드를 수정하지 않고, 외부에서 원하는 기능에 접근하여 결합AOP의 용어Target : 개발자가 작성한 Service 클래스Joint Point : Targ.. 2024. 5. 26. [Spring] Session, 세션 [JSP] 쿠키와 세션 - 세션[JSP] 쿠키와 세션 - 쿠키[JSP] 내장 객체[JSP] GET과 POST[JSP] 태그[JSP] 서버와 클라이언트👨💻웹 프로그래밍이란?- 웹 프로그래밍이란, 웹 어플리케이션을 구현하는 행위입니다. - 웹 어플리케이션hong-study.tistory.com세션에 대한 설명과 내용은 이전 JSP를 공부할 때 설명을 해놨기에, 참고하면 된다.Connectionless Protocol비연결형 프로토콜은 한 네트워크 끝점이 다른 네트워크 끝점에 단순히 메시지를 보내는 사전 합의 없이 두 네트워크 끝점 간의 통신을 의미합니다. 송신 측에서 장치는 수신 측 장치가 준비되었는지 확인하기 전에 데이터 단위를 전송합니다.이 유형의 프로토콜은 대부분의 개방형 인터넷 전송을 설명하지만.. 2024. 5. 26. [Spring] RestAPI @RestController기존의 @Controller는 return에 Model을 담아서 JSP에 전달하는 방식으로 사용헀다.@RestController Annotation은 Return에 처리하는 데이터를 조금 다른 타입으로 처리하는 형식이다.즉, 객체(데이터)를 반환할 수 있고 객체(데이터)를 받을 수도 있다는 뜻이다.비동기 요청 전용 컨트롤러@RequestMapping 으로 들어오는 요청을 받아들이는 것은 동일하지만 Return의 결과는 View Resolver가 아니라 요청한 화면으로 리턴된다.@RestController 기본 준비사항Ajax 사용 준비사항 ( Json 라이브러리 다운 )JSON 은 자바스크립트 객체로 구성된 데이터이다.자바스크립트 객체 형태의 문자열인 셈이다.{ } 를 이용한다.. 2024. 5. 26. 이전 1 2 3 4 5 6 ··· 21 다음 반응형