Programming/Web-Spring 썸네일형 리스트형 [intellij] 인텔리j spring boot 실행 시 , finished with non-zero exit value 1 해결 Execution failed for task ':Application.main()'.> Process 'command 'JDK경로/bin/java.exe'' finished with non-zero exit value 1이번에 소개할 에러는 finishi with non-zero exit value 1 이 녀석이다.Intellij, Gradle 환경에서 Spring 코드를 실행한 후 해당 에러를 만났다. 해결 방법[File > Settings > Build, Excution, Deployment > Build Tools > Gradle] 이 경로로 이동[Build and run using]과 [Run tests using]을 IntelliJ IDEA로 변경[Gradle JVM] 버전을 현재 프로젝트 버.. 더보기 [Spring] Annotation 커스텀 생성하기 @Aspect@Component@Slf4jpublic class LogAspect { private final AccountRepo accountRepo; private final OperatorLogHistoryRepository operatorLogHistoryRepository; public LogAspect(AccountRepo accountRepo, OperatorLogHistoryRepository operatorLogHistoryRepository) { this.accountRepo = accountRepo; this.operatorLogHistoryRepository = operatorLogHistoryRepository; } @Point.. 더보기 [Spring] vault 개념과 활용 Vault란?Vault는 HashiCorp에 의해서 개발된 크로스플랫폼 패스워드 및 인증 관리 시스템이다. 공개되면 안되는 비밀번호, API 키, 토큰 등을 저장하고 관리한다.https://www.vaultproject.io/ 에서 개발했다.사용 이유사용자명, 엔드포인트, 비밀번호, 포트 등 중요한 정보를 형상관리툴에 노출시키지 않게 하기위하여 사용한다.Spring 과 Vaultspring cloud 에서 공식적으로 vault 연결해주는 dependency를 제공해준다.https://spring.io/guides/gs/vault-config/Vault설정org.springframework.cloud:spring-cloud-starter-vault-config 가 있고springframework-vault.. 더보기 [jwt] refreshToken을 db에서 유지하는 이유 JWT 인증은 Stateless 원칙을 기본으로한 인증방식 인증서버에서 1회만 발급받으면 해당 토큰이 가진 만료시간이나, 속성들을 사용하여 어플리케이션이 인증서버의 도움없이 인증 및 인가에 사용할 수 있는 방식 JWT로 인증을 받을경우 해당 토큰은 폐기가 불가능 보안문제를 해결하기 위해 다시 Stateful한 방식인 세션과 같이 Token을 DB에 저장하고 로그아웃이나 기타 정책에 의해 Token을 DB에서 삭제하면 유효한 JWT토큰을 가지고 있더라도 인증실패 처리를 할 수 있음 1시간 만료되서 accessToken을 재발급 받으려고 다시 로그인 하면,서버입장에서는database에서 SELECT Member table 도 해야하고,찾은 Member를 UserDetails로 변환해 검증도 해야하고,검증.. 더보기 [Spring] 필터(Filter) vs 인터셉터(Interceptor) 차이 1. 필터(Filter)[ 필터(Filter)란? ]필터(Filter)는 J2EE 표준 스펙 기능으로 디스패처 서블릿(Dispatcher Servlet)에 요청이 전달되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 디스패처 서블릿은 스프링의 가장 앞단에 존재하는 프론트 컨트롤러이므로, 필터는 스프링 범위 밖에서 처리가 되는 것이다. (디스패처 서블릿에 대해 잘 모른다면 여기를 참고해주세요!)즉, 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너(서블릿 컨테이너)에 의해 관리가 되는 것이고(스프링 빈으로 등록은 된다), 디스패처 서블릿 전/후에 처리하는 것이다. 이러한 과정을 그림으로 표현하면 다음과 같다. [ 필터(Filter)의 메소드 ]필터를 추가.. 더보기 [Spring] QueryDsl의 Q클래스 빨간줄 에러 뜨는현상 방지 인텔리제이 + maven 사용해서 QueryDSL을 설정해봅시다. 필요 라이브러리 querydsl-apt: 쿼리 타입(Q-Class)을 생성할 때 필요 querydsl-jpa: QueryDSL JPA 라이브러리 com.mysema.querydsl querydsl-apt 3.6.3 provided com.mysema.querydsl querydsl-jpa 3.6.3 QueryDsl을 사용하기 위해 필요한 라이브러리는 위와 같습니다. pom.xml을 열어서 안에 추가해주세요. 버전은 사용하시는 환경에 맞게 설정하시면 됩니다. Q Class 생성 플러그인 추가 QueryDSL을 사용하려면 엔티티를 기반으로하는 쿼리용 클래스를 생성해야 합니다. 해당 클래스를 컴파일시 자동으로 생성하기 위해서 플러그인을 추가해주.. 더보기 [Spring] In-Memory DB에 해당되는 H2 DB 사용방법 H2 DB의 3가지 모드 H2DB는 자바 기반 오픈소스 RDBMS(관계형 데이터 베이스 관리 시스템)이다. H2DB Cheat Sheet를 살펴보면 세 가지 용도를 찾을 수 있다. 1. Embedded Mode 2. In-Memory Mode 3. Server Mode Server Mode Server Mode는 공식 사이트에서 H2를 Plafform-Independent 버전을 다운로드하고 h2/bin/h2.sh를 터미널로 실행하면 h2가 TCP 통신을 할 수 있는 서버 버전으로 실행된다고 볼 수 있다. 따라서 외부에서 h2 서버가 실행되어야 스프링에서 application.properties에 h2서버 주소를 입력해 접속할 수 있다. 김영한님의 스프링 입문 강의 섹션 6 : H2 데이터베이스(무료강.. 더보기 refresh token도 결국 JWT인데 왜 "Bearer"을 안쓰는걸까? https://velog.io/@cada/%ED%86%A0%EA%B7%BC-%EA%B8%B0%EB%B0%98-%EC%9D%B8%EC%A6%9D%EC%97%90%EC%84%9C-bearer%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C 토근 기반 인증에서 bearer는 무엇일까? 본 글은 MDN - HTTP 인증, Veloport님의 게시글을 참고하여 작성되었습니다. 자세하게 알고싶으신 분은 해당 링크를 참고해주세요.토큰 기반 인증인증 타입마치며토큰 기반 인증은 쿠키나 세션을 이 velog.io 참고 ✅ 상황 로그인 요청을 날리고, AccessToken과 RefreshToken이 정상적으로 돌아오는 것을 확인했다. ✅ 의문 JWT 토큰 인증을 구별하기 위해 Bearer을.. 더보기 [Intellij] 인텔리j 플러그인 설치 방법 (Presentation Assistant, key promoter) Presentation Assistant 간단히 소개를 하자면 특정 단축키를 누를때 MacOS에서는 어떤 단축키로 해당 기능을 수행할 수 있는지를 IDE 화면상에 toast 처럼 띄워주게 됩니다. Key Promoter 사용자가 마우스로 작업을 하면 똑같은 기능을 할 수 있는 단축키를 아래에 초록색 알림창을 통해 제안을 해주는 플러그인 입니다. 위의 그림은 제가 Window 노트북에서 [Ctrl + Shift + A]를 입력했을 때 맥에서는 [↑(윗방향키) + cmd + A] 키로 실행이 가능하다고 알려주는 기능입니다. 설치하기 위해서는 Shift 키를 두번 누르시고 plugins 라고 검색하신 후 엔터를 치시면 위의 플러그인을 설치하시면 됩니다.! 더보기 [SpringBoot] 포스트맨 실행 시 에러 Error: Exceeded maxRedirects. Probably stuck in a redirect loop 현재 상황 - 인증, 인가 관련 예외 처리를 진행하던 중, AuthenticationEntryPoint에서 응답을 주기 위해서 redirect를 하고 있었다. - 흐름은 AuthenticationEntryPoint -> sendRedirect("/exception/**") -> ExceptionController에서 throw new CustomException -> ControllerAdvice에서 해당 exception에 대한 예외 처리 - 그러나 해당 response가 Controller까지 도달하지 못하고 계속 요청이 동작하지 않는다. - 프로젝트에는 스프링 시큐리티가 적용되어 있다. 문제 Could not get response Error: Exceeded maxRedirects. Probabl.. 더보기 이전 1 2 다음