HttpSessionListener를 이용한 중복 로그인 방지
Java/spring2024. 4. 30. 14:41HttpSessionListener를 이용한 중복 로그인 방지

프로젝트를 간단하게 진행하다 보니 중복 로그인에 관한 내용을 신경 쓰지 않고 있었다. Spring Security를 이용하면 수월하다고 하던데프로젝트에 Spring Security를 적용하지 않아서 급한대로HttpSessionListener를 이용하여 중복 로그인을 방지해 보았다.✅ SessionConfig@Slf4j@WebListenerpublic class SessionConfig implements HttpSessionListener { private static final Map sessions = new ConcurrentHashMap(); //중복로그인 지우기 public static boolean loginSessionidCheck(HttpSession session, String user..

Bean Validation
Java/spring2024. 2. 26. 14:34Bean Validation

Spring boot에서 검증 기능을 매번 작성하는 것은 번거롭다. 검증 로직의 대부분은 빈 값인지, 특정 크기를 넘는지 아닌지와 같은 매우 일반적인 로직이다. 이런 로직을 모든 프로젝트에 적용하도록 공통화하고, 표준화한 것이 Bean Validation이다. 의존성 주입 Bean Validation을 사용하기 위해서는 gradle에 의존성을 추가해야 한다. implementation 'org.springframework.boot:spring-boot-starter-validation' ✅ DTO @Data public class ItemSaveForm { @NotBlank(message = "상품명을 입력해주세요.") private String itemName; @NotNull(message = "가격..

Thymeleaf 스프링 통합과 폼
Java/spring2024. 2. 15. 16:24Thymeleaf 스프링 통합과 폼

Spring boot에 관련해서 조금 더 공부를 하다가 Thymeleaf에서 Form을 작성할 때 훨씬 수월하고 깔끔하게 작성할 수 있는 방식에 대해서 알게 되었는데 그냥 그렇구나 하고 넘어갈 뻔하다가 블로그에 조그마한 것이라도 정리하는 습관을 다시 들이기 위해 올리기로 했다. 상황 설명 쇼핑몰 서비스를 제공한다고 가정했을 때, 상품을 등록하는 과정에서 체크박스가 사용되는 경우가 많을 텐데 이것을 Spring boot와 Thymeleaf를 통합하여 간단하게 구현할 수 있는 방법을 알아보자 상품 @Data public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; pr..

spring boot 게시판 - 14 <게시물 이미지 기능>
Java/spring 게시판2023. 6. 19. 08:09spring boot 게시판 - 14 <게시물 이미지 기능>

2023.06.16 - [Java/spring 게시판] - spring boot 게시판 - 13 " data-og-description="2023.06.01 - [Java/spring 게시판] - spring boot 게시판 - 12 spring boot 게시판 - 12 2023.02.23 - [Java/spring 게시판] - spring boot 게시판 - 11 spring boot 게시판 - 11 2023.02.21 - [Java/spring 게시판] - spring boot 게시판 - 10 spri" data-og-host="magicmk.tistory.com" data-og-source-url="https://magicmk.tistory.com/53" data-og-url="https://mag..

spring boot 게시판 - 13 <프로필 사진 구현>
Java/spring 게시판2023. 6. 16. 20:00spring boot 게시판 - 13 <프로필 사진 구현>

2023.06.01 - [Java/spring 게시판] - spring boot 게시판 - 12 spring boot 게시판 - 12 2023.02.23 - [Java/spring 게시판] - spring boot 게시판 - 11 spring boot 게시판 - 11 2023.02.21 - [Java/spring 게시판] - spring boot 게시판 - 10 spring boot 게시판 - 10 2022.11.30 - [Java/spring 게시판] - spring boot 게시판 - 9 sprin magicmk.tistory.com 지난번 댓글 기능을 구현하고 무엇인가 허전해서... 고민하다가 프로필 사진을 추가하기로 했다! 역시 개인 프로필에 사진이 빠질 수 없지 ✅ Table 작성 우선 Imag..

spring boot 게시판 - 12 <댓글 기능 구현>
Java/spring 게시판2023. 6. 1. 20:06spring boot 게시판 - 12 <댓글 기능 구현>

2023.02.23 - [Java/spring 게시판] - spring boot 게시판 - 11 spring boot 게시판 - 11 2023.02.21 - [Java/spring 게시판] - spring boot 게시판 - 10 spring boot 게시판 - 10 2022.11.30 - [Java/spring 게시판] - spring boot 게시판 - 9 spring boot 게시판 - 9 2022.11.30 - [Java/spring 게시판] - spring boot 게시판 - 8 spring magicmk.tistory.com 나태지옥에서 빠져나오겠다고 선언한 지 언 4개월이 흘러흘러... 다행히 자격증은 끝이 났고 이번에는 일본어 공부에 푹 빠져서 일본인들과 대화하며 어울리느라 시간을 보냈다...

Ajax를 통해 파일과 Json 업로드 후 Controller로 받기
Java/spring2023. 5. 12. 17:40Ajax를 통해 파일과 Json 업로드 후 Controller로 받기

항상 Ajax를 통해 정보를 전송할 때 json만 전송하다 보니 파일과 함께 어떻게 보내는지 삽질을 좀 했다 하지만 늘 그랬듯이 삽질을 하고 내용을 정리하니 이게 이렇게 긴 시간을 잡아먹었어야 했는가 싶다 🟧 Ajax & Spring boot Controller ⏹️ Ajax const pdfFile = $("#pdfFile")[0].files[0]; const jsonFile = $("#jsonFile")[0].files[0]; const formData = new FormData(); formData.append("files", pdfFile); formData.append("files", jsonFile); formData.append("json", new Blob([JSON.stringify(da..

Spring boot Interceptor Ajax 체크 (Redirect 이슈)
Java/spring2023. 4. 5. 16:37Spring boot Interceptor Ajax 체크 (Redirect 이슈)

2023.03.30 - [Etc] - 타 도메인에 쿠키 생성하기 타 도메인에 쿠키 생성하기 ✅ 문제 직면 현재 개발하는 서비스에서 다른 사이트의 로그인 정보를 받아야 하는 상황 속에서 SSO (Single-Sign-On)를 활용하지 않아본인이 직접 API를 통해 사용자 정보를 입력 받고 Session을 생성해 magicmk.tistory.com 이전 포스팅에서 Interceptor를 통해 Session을 체크하는 로직을 구현했었는데 Session을 체크하는 것 자체는 문제가 없었지만 다른 부분에서 약간의 문제가 발생하였는데 Ajax를 통해 접근 시 Redirect가 안된다는 것이었다. 그래서 Interceptor에서 Ajax 요청인지를 체크하고 로직을 다르게 구현하였다. 🟧 Interceptor & Aj..

image