본문 바로가기

전체 글

(262)
springboot OAuth 네이버 아이디로 로그인 @ 처음에 네이버 로그인을 구현할 때 매우 힘들었던 기억이 있어서 남겨놓으려고 함. 기본적으로 아래에 있는 OAuth 순서를 잘 살펴보자. 본 그림 중에 젤 자세하다. 글을 읽다가 이해가 안되면 수시로 올라와서 보도록 하자. @ 먼저 혼자 하고싶고 OAuth에 대충 안다면 네이버 developers들어가서 API명세와 같이 다른거 보지말고 튜토리얼 - web애플리케이션 보면 된다. 설명이 잘되어있음. https://developers.naver.com/docs/login/web/web.md Web 애플리케이션 - LOGIN 네이버 로그인은 서버 사이드 언어인 PHP나 Java로 개발한 웹 애플리케이션에도 적용할 수 있습니다. 또한 프런트엔드에서 사용하는 JavaScript를 사용해도 적용할 수 있습니다...
spring boot jwt filter, converter JWT filter 를 구현해놓았는데 JWT를 안쓰게 되어서 아까워서 남김.. 사실상 jjwt의 라이브러리 사용법 정도임. package pnu.problemsolver.myorder.filter; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.web.filter.OncePerRequestFilter; import pnu.problemsolver.myorder.domain.Role; impo..
spring scurity 예외: 페이지가 작동하지 않습니다. localhost에서 리디렉션한 횟수가 너무 많습니다. 아래는 브라우저 모습 아래 캡쳐에서 개발자도구에서 login으로 계속 리다이렉션을 보내는 것을 확인. status code 302는 redirection임. 아래는 토이프로젝트의 config java파일 코드임. 아래의 configure()함수에서 빌더패턴을 사용해 설정하는데 설정 순서가 중요했다.!! package pnu.problemsolver.myorder.config; import io.jsonwebtoken.Jwt; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.s..
SpringBoot DI, @Configuration 에서 주의할 점. Error creating bean with name 'jwtAuthenticationFilter': Requested bean is currently in creation: Is there an unresolvable circular reference? package pnu.problemsolver.myorder.config; import io.jsonwebtoken.Jwt; import lombok.RequiredArgsConstructor; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.conf..
Spring, JUnit5 @BeforeAll @BeforeAll의 함수는 static이어야한다. 아래와 같이 @TestInstance(TestInstacne.Lifecycle.PER_CLASS)를 붙이지 않으면 static~ 예외 발생한다.
Spring, JPA, mariadb 시작 에러 JPA dialect(방언)~라고 에러뜰 때 아래의 설정을 추가해주면 된다. dialect : DB마다 조금씩 다른 문법을 의미함. mysql을 사용할 때는 mysql dialect를 사용해야함. 각자 사용하는 DB에 따라 다른 값을 가진다. mariadb는 mysql을 사용하면 되고 주석에 나와 있듯이 mssql은 sql_server를 사용하면 된다. 주의할점. properties파일을 작성할 때 뒤에 공백이 있으면 안될 때가 있다. 예로 14번줄 mysql뒤에 공백이 있으면 인식못한다. 전체 application.properties파일. 마찬가지로 root도 뒤에 공백있으면 안된다. "root"가 아닌 "root "로 접근한다. 초반에 table구조가 바뀔 상황이 많을 때는ddl-auto=create..
what is REST? 아래 3개의 글을 읽으면 rest에 대해 잘 이해할 수 있을 것이다. 특히 마지막 것을 잘 봐라. https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html [Network] REST란? REST API란? RESTful이란? - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io https://sanghaklee.tistory.com/57 RESTful API 설계 가이드 1. RESTful API 설계 가이드 본 문서는 REST API를 좀 더 RESTful 하게 설계하도록 가이드할 목적으로 만들어졌다. 따라서, 기본적인 REST API 개념 설명은 아래의 링크로 대신..
[spring boot] 서버 재시작시 세션 아래는 컨트롤러의 일부분이다. 로그인에 성공하면 세션에 test, member값을 넣고 있다. @PostMapping("/login") public String login(@ModelAttribute("m") Member m, HttpServletRequest request, Model model) { model.addAttribute("login", "fail"); HttpSession session; if (memberService.login(m)) { session = request.getSession();//세션이 없다면 세션생성. m.setNickName(memberRepository.findByLoginId(m.getLoginId()).getNickName()); session.setAttri..