오늘 배운 것
Java 기초
- StringUtils
String에 대한 유용한 메소드들을 제공하는 클래스이다. null-safe한 연산을 진행해주는 점이 아주 큰 장점이다.
원본 클래스는 org.apache.commons.lang3 를 import해야하고 기능도 더 많지만 spring에서 제공해주는 (org.springframework.util.StringUtils) 만 알아보자.
아래는 공식 문서이다.
자주 쓰는 유용한 메소드들은
hasText() - 입력값이 null이거나, "" 이거나, 공백이 포함되어 있다면 false. 순수한 텍스트만이 있는 지 확인해준다.
public static boolean hasText(@Nullable CharSequence str) {
if (str == null) {
return false;
}
int strLen = str.length();
if (strLen == 0) {
return false;
}
for (int i = 0; i < strLen; i++) {
if (!Character.isWhitespace(str.charAt(i))) {
return true;
}
}
return false;
}
isEmpty() - 문자열이 null이거나 "" 이면 true 반환.
public static boolean isEmpty(@Nullable Object str) {
return (str == null || "".equals(str));
}
trimAllWhitespace() - 모든 공백을 삭제
startsWithIgnoreCase(a,b), endsWithIgnoreCase(a,b) - a가 b로 시작하거나 끝나는지 확인
hasText()가 JWT 토큰을 substring할 목적으로 사용되었을 때("Bearer "의 공백을 없애기 위함) 궁금해서 정리해보았다.
- Spring Security
흐름을 이해하는 게 중요하다. 용어들에 익숙해지자
Spring security가 제공하는 인증이 진행되는 filter의 이름은 UsernamePasswordAuthenticationFilter.
UsernamePasswordAuthenticationToken에 (principal(사용자 식별자. 주로userDetails), credentials(비밀번호 인데 인증 후 비움),Authorities)를 넣어주고 이를 AuthenticaitonManager에게 넘겨준다.
이 토큰이 합당하다면 이 토큰을 SecurityContext의 Authentication으로 set해준다.
알고리즘
- 프로그래머스 : 의상(Level 2, Hash)
느낀 점
처음보는 개념, 어려운 용어들이 우수수 쏟아지다 보니 구현은 커녕 이해도 힘들어지는데 파이팅해보자^^
'TIL' 카테고리의 다른 글
[23.11.16] (0) | 2023.11.16 |
---|---|
[23.11.15] (3) | 2023.11.15 |
[23.11.13] (1) | 2023.11.13 |
[23.11.10] (0) | 2023.11.10 |
[23.11.09] (0) | 2023.11.09 |