Mac.doFinal
- MAC은 서로 공유하는 secret key가 있을 때, 전송되는 정보의 유효성을 검증하고 요청에 대한 응답을 처리해주기 위해 사용됩니다
- 메커니즘은 암호화 해시기능에 기반하는데, 이러한 매커니즘을 HMAC이라고 합니다. HMAC은 어떤 해시기능 (e.g., SHA256, SHA384)과도 같이 사용하며, secret key와 조합해서 사용
참고
- HandlerExecutionChain
- Method.class
- Resource
- WeakReference
- AtomicBoolean
: 스레드 세이프로 동시성을 보장하는 Boolean형 Wrapping 클래스이고
ResourceHttpRequestHandler
: 디렉터리에 있는 정적 리소스를 처리하는 작업을 담당한다.
유연한 캐시설정을 허용해서 브라우저 성증에 최적화된 정적 리소스를 제공한다.
요청에 대한 리소스가 있는지 확인한 후 처음으로 발견한 리소스를 Expires와 헤더와 함께 리턴한다.
Cache-Controll, Last-Modified를 적절하게 평가해서 이미 캐시한 리소스에 대해 불필요한 오버헤드를 방지한다.
/static, /public, /resources, /META-INF/resources
-https://cheolhojung.github.io/posts/java/web-mvc-static-resources.html
- WebMvcConfigurer
- WebMvcConfiguration
- addInterceptors
- configureContentNegotiation
- addCorsMappings
- extendHandlerExceptionResolvers
- InterceptorRegistration
Cipher
: 암호화 및 복호화 기능을 제공하며 Java Crpytography Architectur(JCA)의 일부분으로, 애플리케이션에서 데이터 암호화, 복호화 그리고 개인 데이터의 해싱을 제공
권한이 있는 사용자만 메세지를 이해하거나 접근할 수 있도록 메세지를 인코딩하는 과정을 말한다.
palintext라고 불리는 메세지는 암호화 알고리즘을 통해 암호화되어 cyphertext를 생성한다. 이는 복호화를 통해 오직 권한이 있는 사용자만 읽을 수 있다.
- Cipher 객체는 오직 변환 알고리즘만 명시하여 초기화 할 수 있다.
자바에서는 secretKey의 길이가 32bit면 AES-256, 24bit면 AES-192, 16bit의 경우 AES-128로 암호환한다.
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
참고
- header에 있는것 Signature와 SilentMode, 역할 com.netand.commons.net.http.request;
파일 시그니처는 파일의 가장 처음에 위치하는 특정 바이트들도 파일 포맷을 구분하기 위해 사용
- Signature: 파일의 가장 처음에 위치하는 특정 바이트들도 파일 포맷을 구분하기 위한 것
파일의 처음에 존재하는 시그니처는 보통 헤더(Header) 시그니처
- SilentMode