본문 바로가기
728x90
반응형

spring69

[Spring Security] DaoAuthenticationProvider org.springframework.security.authentication.dao.DaoAuthenticationProvider DaoAuthenticationProvider는 UserDetailsService 및 PasswordEncoder를 사용하여 사용자 아이디와 암호를 인증하는 AuthenticationProvider 구현입니다. The authentication Filter는 ProviderManager에 의해 구현되는 AuthenticationManager에 UsernamePasswordAuthenticationToken을 전달합니다. ProviderManager는 DaoAuthenticationProvider 타입의 AuthenticationProvider를 사용하도록 구성됩니다. Dao.. 2023. 5. 9.
[Spring] webSocket 보호되어 있는 글 입니다. 2023. 4. 5.
[Spring] @Transactional 과 UnexpectedRollbackException org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only 아래 코드와 같이 예외가 발생했더라도 트랜잭션이 시작된 메서드에서 예외를 잡았으니 롤백 없이 커밋되고 정상적으로 값을 리턴할 것이라고 생각하였습니다. @Service public class AccountService { @Resource private HistoryService historyService; @Transactional public UserDetails signUp(UserVO param) { // ... try { historyService.add.. 2023. 2. 1.
[webFlux] SwitchIfEmpty가 항상 호출되는 이슈 해결 (Lazy Evaluation) webflux에서 if else문으로 switchIfEmpty를 주로 사용하는데, empty가 아닌 경우에도 switchIfEmpty를 항상 호출합니다. 왜 그러는 것인지, 어떻게 하면 호출을 안 하게 할 수 있는지 알아보겠습니다. 1: String str = "str"; 2: Mono.just(str) 3: .map(s -> { 4: System.out.println(s); 5: return s; 6: }) 7: .switchIfEmpty({ 8: System.out.println("defaultStr"); 9: return Mono.just("default"); 10: }) 11: .subscribe(); 위 코드를 보면 str이 비어 있지 않으니 문자열 "str"만 출력할 것이라고 생각하겠지만, 실.. 2022. 12. 20.
[SpringBoot] InfluxDB 연동 및 예제 시계열 데이터베이스 InfluxDB에 대한 설명과 설치는 아래 포스팅을 참고해주세요. [TSDB/InfluxDB] 시계열 데이터베이스 InfluxDB 설치하기 시계열 데이터베이스(TSDB, Time Series Database) Time-Stamped Data라고도 불리는 Time Seriese Data(시계열 데이터)는 시간에 따라 저장된 데이터를 의미합니다. 시계열 데이터들은 동일한 소스로부터 시간이 moonsiri.tistory.com 우선 influxDB의 UI에 접근합니다. (http://localhost:8086/) 메인 화면에 Java가 없다면 [MORE →] 버튼을 클릭합니다. java를 검색한 후 클릭합니다. 그러면 JAVA를 사용할 경우 추가해야 할 Dependency라던가 Client.. 2022. 11. 14.
[Spring5] 쿠키와 파라미터로 Locale 처리(CustomCookieLocaleResolver, LocaleChangeInterceptor) Cookie를 이용하여 Locale을 정의하는 CookieLocaleResolver과 언어 파라미터에 따라 Locale을 변경해주는 LocaleChangeInterceptor에 대해 포스팅하겠습니다.  CookieLocaleResolver CookieLocaleResolver는 말 그대로 Cookie를 이용해서 Locale 정보를 담는 것입니다. setLocale()을 통해 Locale 정보를 담은 Cookie를 생성하고 resolverLocale()에서 Cookie로 부터 Locale 정보를 가지고 옵니다. import org.springframework.web.servlet.i18n.CookieLocaleResolver; @Bean public LocaleResolver locale.. 2022. 9. 8.
[Spring] RequestContextHolder로 HttpServletRequest 가져오기 HttpServletRequest를 메서드 파라미터로 선언하지 않고 가져오는 방법입니다. request를 서비스 레이어까지 전달하지 않더라도 RequestContextHolder를 이용하면 되는데, RequestContextHolder는 Spring 프레임워크 전 구간에서 HttpServletRequest에 접근할 수 있게 도와주는 구현체입니다. RequestContextHolder는 ThreadLocal을 사용해서 servlet이 호출되면 thread, HttpServletRequest를 key-value로 보관하고 있다가 요청을 하면 동일한 thread내에서는 어느 곳에서든 같은 HttpServletRequest를 돌려주는 역할을 합니다. RequestContextHolder에는 HttpServlet.. 2022. 7. 21.
[Spring/Jenkins] 젠킨스 Rest API로 젠킨스 Job 실행 젠킨스 Rest API를 이용하여 젠킨스 Job을 실행하는 방법을 알아보겠습니다. 1. 젠킨스 계정 API Token 생성 계정 > 설정 > API Token > Add new Token 원하는 이름으로 생성한 뒤 토큰을 복사해주세요. (복사하지 않으면 토큰을 알 수가 없음. 토큰명은 의미 없음.) 2. Item에 Token 추가 view > item > 구성 > 빌드 유발 빌드를 원격으로 유발 (예: 스크립트 사용)을 체크한 뒤 복사한 토큰을 붙여 넣기 해주세요. 3. curl로 job 실행 테스트 curl -X POST [젠킨스 서버 URL]/job/[job 이름]/buildWithParameters --user [젠킨스 user id]:[user password] --data token=[생성한 j.. 2022. 7. 4.
[Spring] EhCache를 Caffeine Cache로 변경하는 방법 (Caffeine Cache 적용 방법) 캐시 비교 게시글은 많기 때문에 생략하겠습니다. (Redis, EhCache, Caffeine 비교 , EhCache, Caffeine 비교) 해당 본문에서는 로컬 캐시가 EhCache로 설정되어 있는 환경을 Caffeine Cache로 변경하는 방법을 다루겠습니다. 1. pom.xml dependency를 변경합니다. ehcache caffeine net.sf.ehcache ehcache com.github.ben-manes.caffeine caffeine 3.1.1 2. application.yml ehcache 설정을 제거합니다. ehcache caffeine spring: cache: ehcache: config: classpath:cache/ehcache.xml 제거 3. Configuratio.. 2022. 6. 24.
[Spring] HttpStatus.LOCKED : 423 Client Error HTTP Status Code는 클라이언트가 보낸 HTTP 요청에 대한 서버의 응답을 코드로 표현한 것으로, 해당 코드로 요청의 성공, 실패, 실패 요인 등을 알 수 있습니다. HTTP 상태 코드 중 LOCKED 상태 코드에 대해 알아보겠습니다. Locked라는 단어만으로 단순히 잠금상태로 판단하고 계정 잠금 등에 사용하면 안 됩니다. 423 상태 코드는 메서드의 소스 또는 대상 리소스가 잠겨 있음을 의미합니다. 이 응답에는 'lock-token-submitted' 또는 'non-conflict-lock'과 같은 적절한 전제 조건 또는 사후 조건 코드가 포함되어야 합니다. 423 Locked The 423 (Locked) status code means the source or destination re.. 2022. 6. 3.
728x90
반응형