JWT payload (claims, body) 부 암호화 및 복호화 방법 JWT를 사용하는것 자체가 암호화된 json 문자열로 전송을 하는건데 무슨 암호화 및 복호화를 또 하느냐!? 암호화가 된다 하더라도 jwt.io 에서 알고리즘만 알고 있다면 다시 복호화된 값으로 볼수 oingdaddy.tistory.com 위에 나온것처럼 AES를 사용해서 암호화를 했는데 Invalid AES key length 오류가 발생하는 경우가 있다. 이것은 정말 명확한 오류 메세지이다. 글자수가 잘못되었다는 것이다. AES 암호화를 하는데 사용되는 Key는 16, 24, 32 byte 여야 한다. public class Aes256Util { final static String secretKey = "oingisprett..
JWT를 사용하는것 자체가 암호화된 json 문자열로 전송을 하는건데 무슨 암호화 및 복호화를 또 하느냐!? 암호화가 된다 하더라도 jwt.io 에서 알고리즘만 알고 있다면 다시 복호화된 값으로 볼수 있다. 그래서 보통 JWT로 통신을 할때는 payload에 중요한 정보를 넣지 않는것이 권장이 된다. userId, expireTime 등등의 정보만 보통은 가지고 있다. 하지만 중요한 정보를 payload에 넣어야 될수도 있고 userId도 노출이 되면 안되는 경우도 있다. 이럴 경우에는 payload 부분을 암호화를 해줘야 한다. 서로 통신을 하는 것이므로 단방향 암호화는 사용할 수 없고 양방향 암호화를 사용해야 한다. 양방향 암호화의 대표적인 알고리즘은 AES(Advanced Encryption Sta..
CSV파일은 지금은 많이 안쓰이지만 그래도 종종 사용이 된다. 여러가지 OSS가 이를 지원해주고 있지만 그중 간단하게 CSV파일을 파싱할 수 있는 방법을 소개한다. 일단 univocity-parsers dependency 추가가 필요하다. pom.xml com.univocity univocity-parsers 2.8.4 TestCSV.java import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.util.List; import com.univocity.parsers.csv.CsvParser; import com.univocity.parsers.csv.CsvParserSettings; ..
이전 포스팅까지는 Thymeleaf 의 문법을 위주로 보았다면 이번에는 layout 을 구성하는 방법에 대해서 알아보겠다. 기존에는 tiles를 활용하여 이런 layout을 구성하고는 했는데 Thymeleaf를 사용해서도 가능하다. 다재다능한 녀석이다. Layout 구성을 위해서 일단은 dependency를 하나 추가해줘야한다. pom.xml org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-web nz.net.ultraq.thymeleaf thymeleaf-layout-dialect thymeleaf-layout-dialect 라는 dependency가 새롭게 추가가 되었다...
이번에는 생각해서 작성한 내용 없이 Thymeleaf 공식 홈페이지에서 지원하는 API 목록 을 쭉 긁어왔다. 왜냐면 공식사이트가 너무 느려서 한번씩 찾아볼때마다 울화통이 터진다.. 출처 : https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.htmlBase objects#ctx : the context object. It will be an implementation of org.thymeleaf.context.IContext, org.thymeleaf.context.IWebContext depending on our environment (standalone or web). If we are using the Spring integration mo..
비교적 최근에 나온 기술답게 thymeleaf 도 메뉴얼이 아주 훌륭하다. Tutorial: Using Thymeleaf 1 Introducing Thymeleaf 1.1 What is Thymeleaf? Thymeleaf is a modern server-side Java template engine for both web and standalone environments, capable of processing HTML, XML, JavaScript, CSS and even plain text. The main goal of Thymeleaf is to provide a www.thymeleaf.org 거의 모든 내용은 이 안에서 찾을 수 있다. 영어만 잘 하면 정말 훌륭한 개발자가 될수 있을것 같은..
springboot 로 기존의 app을 converting 하며 가장 충격?적이었던 말은 'JSP는 더이상 권고하지 않는다. Thymeleaf나 Freemaker, Jade4j 와 같은 template engine 사용을 권고한다.' 라는 것이었다. PHP를 사용하다가 대세가 JSP로 바뀐 이후로 줄곧 써왔었고 JAVA가 견고하다면 앞으로도 쭉 같이 사용할줄로만 알았던 JSP를 사용하지 말라니.. IT업계는 참 끊임없이 공부를 하게 만들어준다. 자세한건 여기에서 확인하고 일단 Thymeleaf (타임리프라고 읽는다. 초능력같은 느낌이다.) 를 써보기 위해 프로젝트를 하나 만들어 보도록 하자. thymeleaf 샘플 프로젝트 생성하기 (Eclipse) 프로젝트 생성 > New Spring Starter P..
이 오류는 웹 프로젝트를 진행하다보면 흔히 만날수 있는 오류이다. web.xml에서는 Dynamic Web Module이라는것을 3.0으로 정의를 했는데 이것과 project facet 의 version이 다르다는 것이다. project facet 이라는건 다음과 같다. project 우클릭 후 properties 로 진입을 하면 볼수 있는 Project Facets 메뉴가 있다. 이곳에서 문제가 되는 Dynamic Web Module 을 보면 version이 무려 4.0 으로 설정되어있다. web.xml 하지만 내 web.xml 을 보면 3.0 버전을 사용하고 있다. 이 두개의 버전이 달라서 문제가 되는 것이다. 그럼 Project Facets에 들어가서 바꿔주면 되겠네? 하고 들어가서 바꿔보면 .....