Spring

Spring/security

JWT 토큰

JWT 토큰 전 게시글에서 여러 가지 로그인 방식 설명에 있어 주로 사용되는 3가지 방법이 있다고 말했다 세션 - 쿠키 토큰 (jwt 토큰) 방식 다른 채널을 통해 인증 (OAuth) 이번 본문에서는 2번을 토큰 방식에 대해 알아볼 것이다. (본문 길이상 간단하게 설명합니다.) JWT(JSON WEB TOKEN)은 무엇일까? 먼저 JWT 가 뭔지부터 알고 넘어가자 JWT 토큰은 간단하게 사용자의 정보를 JSON 객체로 안전하게 전 송하기 위한 방법이다. JWT의 구조 JWT 구조(이미지 출처) Header 토큰의 유형 , 사용 중인 서명 알고리즘 두 부분으로 구성된다. { "alg": "HS256", // 서명 알고리즘 "typ": "JWT" // 토큰 유형 } Payload 등록된 클레임 서비스에 필요..

Spring/security

Spring security 동작 원리 (인증,인가)

인증(Authentication) 인증이란 식별 가능한 정보 (이름 , 이메일)를 이용하여 서비스에 등록 유저의 신원 입증하는 과정이다. 즉 나의 서비스에 등록된 사용자에게만 서비스를 제공한다는 뜻으로 간단히 이해하자. 인가(Authorization) 인증만 가지고는 서비스를 운영하기에는 무리가 있다. 인증을 한 사용자에게 모든 서비스를 제공하게 된다면? 내가 작성한 글이 다른 사람에 의해서 수정되거나 삭제될 수 있다. 따라서 인증된 사용자가 접근하려는 자원에 대한 권한이 있는지 확인하는 절차가 필요할 것이다. 또한 인가는 항상 앞에 인증이라는 선행 프로세스가 필요하다.(인증하지 않은 유저의 권한을 알 수 없기 때문에) 그렇다면 우리는 인증(로그인)을 하기 위해 어떠한 방식들을 사용할까? 세션 - 쿠키 ..

Spring/boot

[Spring-boot] ExceptionHandler

ExceptionHandler REST API 개발 시 개발자는 DB에 없는 값이나 URL에 대한 요청이 잘못되었을 때 그에 맞는 ErrorMessage를 넘겨줘야 한다. 물론 REST API 개발이 아니어도 당연히 해야 할 예외처리이다. Spring-boot에서는 요청에 대한 Exception 이 발생했을 때 그 요청을 받아 처리할 수 있는 Handler를 제공해준다. 말로 설명보다 코드로 보는 것이 이해하기 쉬우니 다음 예제 코드를 보자. 1.@ExceptionHandler(Class

Spring/boot

[Spring-boot] Thymeleaf

Thymeleaf 아마 WebApplication을 한 번이라도 개발해봤다면 JSP를 사용했을 것이다. thymeleaf 도 JSP와 같은 template 엔진이다. 둘의 차이점은 다름아닌 JSP는 서버를 통해 Servlet 코드로 변환되어 랜더링 하지만 thymeleaf는 servelt 코드로 변환되지 않는다. 이 차이점으로 인해 thymeleaf는 서버가 존재하지 않아도 Html을 확인할 수 있지만 JSP는 불가능하다. 또한 JSP는 위에서 말한 서버가 필수적이기 때문에 WAR 패키징을 진행해야 하고 thymeleaf는 jar 패키징이 가능하다. JAR와 WAR 차 이첨은 간단히 JRE 만 가지고 실행이 가능한 것과 아닌 것으로 말할 수 있다. 이제 Thymeleaf을 간단히 사용해보자. pom.xm..

Spring/boot

[Spring-boot] 웹MVC 2부 : 정적리소스

정적 리소스 지원 spring boot는 웹브라우저에서 요청이 들어왔을 때 이미 만들어져 있는 리소스를 지원하는 기능이다. spring boot 는 다음과 같은 위치에 있는 정적 리소스들을 제공해줄 수 있다. classpath:/static classpath:/public classpath:/resources/ classpath:/META-INF/resources 정적 리소스 맵핑 은 다음과 같으며 /** 해당 경로를 얼마든지 커스텀 할 수 있다. -> apllication.properites 파일에 다음과 같이 설정하면된다. spring.mvc.static-path-pattern spring.mvc.static-path-pattern=/static/** 또한 요청에 대한 정적 리소스를 찾을 디렉터리도 ..

Spring/boot

[Spring-boot] 웹MVC (1부) : 소개 , ViewResolver

이제 spring-boot 가 자동 설정하는 Configuration 중 WebMvcAutoConfiguration에 대해 서 알아보자. WebMvcAutoConfiguration 은 SpringMvc의 자동 설정 Configuration이며 Springboot를 사용하면서 많은 자동 설정들을 도와준다. Spring-boot를 실행하면서 자동 설정을 확장하거나 재정의 하는 방법은 다음과 같이 진행하면 된다. SpringMvc 확장 @Configuration public class WebConfig implements WebMvcConfigurer { } 하나의 설정 파일에 WebMvcConfigurer를 구현하면 된다. 여기서 WebMvcConfigurer 인터페이스가 제공하는 콜백 함수를 이용하여 사용..

Spring/boot

[Spring-boot] Test

Test 우리는 Spring-boot를 사용하면 대부분 WebApplication을 개발할 것이다. WebApplication을 개발 함에 있어 또한 대부분 MVC 패턴을 이용하여 개발을 진행한다. 또한 개발을 진행함에 있어 Test 코드의 작성은 선택이 아닌 필수이다. Spring-boot는 Test를 작성함에있어 그렇게 어렵지 않으니 한번 알아보자. 자 다음과 같은 SampleContoller와 SampleService 가 있다. @RestController public class SampleController { @Autowired SampleService sampleService; @GetMapping("hello") public String helloName(){ return sampleServ..

Spring/boot

[Spring-boot] Logging

Logging spring-boot 은 기본적으로 Logback 이 로깅에 사용된다. Logback 은 SLF4 J의 구현체이며 자바 오픈소스 로깅 프레임워크이다. LogBack을 xml configration 이용할 때 3가지의 주요 설정이 있는데 다음과 같다. Appender 로그 메시지를 출력할 대상을 결정함 (console , file, DB 등). Encoder 로그 메시지의 포맷을 지정함. Logger, root appender를 읽어 로그를 출력할 package와 log level을 설정함. 상세 설정은(http://logback.qos.ch/manual/index.html) 참고 Example %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg..

jay Joon
'Spring' 카테고리의 글 목록 (2 Page)