개발일지/스프링42 spring boot 로그인 기능 (form태그 로그인하기) SecurityConfig package com.demo.t1.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configurat.. 개발일지/스프링 2022. 12. 20. spring boot 회원가입 기능 SecurityConfig package com.demo.t1.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; import org.springframework.secu.. 개발일지/스프링 2022. 12. 20. csrf적용한 로그인(아웃), 회원가입,댓글(작,삭),게시글(작,수,삭),회원정보(수정) SecurityConfig login_form.jsp username: password: signIn 로그인화면에서 소스보기로 확인해보면 토큰값을 받아오는걸 확인 할 수 있다. 회원가입 처리 header user.js let token = $("meta[name='_csrf']").attr("content"); let csrfHeader = $("meta[name='_csrf_header']").attr("content"); beforeSend: function(xhr) { xhr.setRequestHeader(csrfHeader,token) }, 게시글 작성 save: function() { let xcheckTitle = XSSCheck($("#title").val()); let token = $(".. 개발일지/스프링 2022. 12. 20. spring boot 댓글 삭제기능 detail.jsp 돌아가기 수정 삭제 글 번호 : ${board.id + 100} 글 작성자 : ${board.user.username} ${board.title} ${board.content} 등록 댓글 목록 ${reply.content} 작성자 : [ ${reply.user.username} ] 삭제 board.js let index = { init: function() { $("#btn--save").bind("click", () => { this.save(); }); $("#btn--delete").bind("click", () => { this.deleteById(); }); $("#btn--update").bind("click", () => { this.update(); }); $("#btn.. 개발일지/스프링 2022. 12. 19. XSS 예방 XSS(크로스 사이트 스크립트) 란? 검증되지 않은 입력 값으로 인해 사용자의 웹 브라우저에서 의도하지 않은 악성 스크립트가 실행되는 취약점 외부 입력이 동적 웹 페이지 생성에 사용될 경우, 전송된 동적 웹 페이지를 열람하는 접속자의 권한으로 부적절한 스크립트가 수행되는 취약점 공격을 통해 사용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹 페이지 변조 등이 발생 공격 대상은 서버가 아니라, 클라이언트이다. https://github.com/naver/lucy-xss-servlet-filter GitHub - naver/lucy-xss-servlet-filter Contribute to naver/lucy-xss-servlet-filter development by creating an accoun.. 개발일지/스프링 2022. 12. 19. 카카오 로그인 기능 생성 및 셋팅(인가코드 발급받기, 토큰발급받기) https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 내 애플리케이션 만들기 나중에 페이지를 넘겨줄 URL주소이다 (생성할 예정) 인가코드를 받기위해 나중에 Redirect URL이 필요하다 그러니 따로 메모장에 기록해두자 카카오톡 로그 설정하는법 https://developers.kakao.com/docs/latest/ko/kakaologin/rest-api Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인.. 개발일지/스프링 2022. 12. 15. 스프링 RestTemplate RestTemplate란 Spring에서 지원하는 객체로 간편하게 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스입니다. Spring 3.0부터 지원되었고, json, xml 응답을 모두 받을 수 있습니다. Rest API 서비스를 요청 후 응답 받을 수 있도록 설계되어있으며 HTTP 프로토콜의 메소드(ex. GET, POST, DELETE, PUT)들에 적합한 여러 메소드들을 제공합니다. ※ Spring Framework 5부터는 WebFlux 스택과 함께 Spring은 WebClient 라는 새로운 HTTP 클라이언트를 도입하여 기존의 동기식 API를 제공할 뿐 만 아니라 효율적인 비차단 및 비동기 접근 방식을 지원하여, Spring 5.0 이후 부터는 RestTemplate는 dep.. 개발일지/스프링 2022. 12. 15. JPA 네이밍전략, 네이티브 쿼리 사용하기 간단한 CRUD 기능은 자동으로 생성해주지만 나중에 필요한 데이터를 가져오기위해 복잡한 쿼리들이 사용할때가있다. 그럴땐 직접 쿼리를 짜서 기능을 만들어주어야 한다. 복잡한 쿼리를 사용하기에는 네이티브 쿼리를 사용하는게 좋다. 개발일지/스프링 2022. 12. 12. Spring Boot 회원가입 샘플 기능 만들어보기 ORM 연관 관계 만들기 @ManyToOne @OneToMany @OneToOne @ManyToMany @DynamicInsert null 인 값은 필드에서 제외 package com.tencoding.blog.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PostAuthorize; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springfr.. 개발일지/스프링 2022. 12. 8. yml 설정하기 - 2 yml 설정하기 - 1 https://zico8282.tistory.com/entry/SpringBoot-JPA-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%84%A4%EC%A0%95-MySQL-%EC%84%A4%EC%A0%95-YML-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95 SpringBoot - JPA (의존성 설정), MySQL 설정, YML 파일 설정-1 프로젝트파일 생성 및 dependency추가 , 서버 포트번호 설정 , db연결 설정 Spring Web web mvc를 사용하여 웹 애플리케이션을 만드는데 필요한 스프링 부트의 기본적인 요소를 가지고 있다. 내장형 컨테 zico8282.tistory.com yml 설정하기 스프링 레거시 버전 web.xml.. 개발일지/스프링 2022. 12. 8. Xml, Json, Yaml 차이점 우리가 타 시스템 간에 데이터를 주고 받을 때 데이터 포맷에 대한 약속이 필요합니다. Xml과 Json 파일 포맷 형태 태그형식을 통해서 Key와 Value를 구분하고, 태그안에 태그를 넣어서 부모와 자식관계의 구조를 나타낸다. 근데 위에 Object와 Array 부분은 표시를 해놨지만 Xml포맷상으로는 구분이 안되는 부분도 있다. 그리고 Object 일 경우 {} 로 감싸주고있고, Array일 경우 [] 사용한다. 다음은 Yaml 이다. 야멜이라고 보통 읽고요. yml 이라고도 씁니다. key 와 value 사이에 한 칸이 띄워져 있어야 한다. (엄격한 규칙) yml 파일은 json 형식과 다르게 중괄호{} 없이 스페이스 2칸 이다. 즉 들여쓰기 규칙은 스페이스 2칸 이다. 규칙을 지키지 않으면 동작하.. 개발일지/스프링 2022. 12. 8. Spring Boot - interceptor interceptor 란 Filter 와 매우 유사한 형태로 존재 하지만, 차이점 Spring Context 에 등록이 된다. AOP와 유사한 기능을 제공할 수 있고, 주로 인증 단계를 처리하거나 Logging 를 처리 하는데 사용할 수 있다. 하나의 요청에 대해서 (URI) 전처리 후처리가 가능 함으로써 핵심 로직 역시 분리 할 수 있다. 💡 interceptor 란 Filter 와 매우 유사한 형태로 존재 하지만, 차이점 Spring Context 에 등록이 된다. AOP와 유사한 기능을 제공할 수 있고, 주로 인증 단계를 처리하거나 Logging 를 처리 하는데 사용할 수 있다. 하나의 요청에 대해서 (URI) 전처리 후처리가 가능 함으로써 핵심 로직 역시 분리 할 수 있다. Spring 에 등록 .. 개발일지/스프링 2022. 12. 8. 이전 1 2 3 4 다음