본문 바로가기
반응형

분류 전체보기386

[SpringBoot 2.x] (Spring Security) 페이스북 로그인 연동 인터넷에 나와있는 SpringBoot + 페이스북 연동 은 1.x 버전이라 안됩니다. 그래서 Spring Security Oauth2 를 이용해서 로그인하는 방법에 대해 다루를 예정입니다. 시작하기 전에 페이스북 디벨로퍼에 접속하여 새로운 App을 생성합니다. 생성할 때, 'Facebook 로그인' 을 설정해 둡니다. https://developers.facebook.com/?locale=ko_KR 여기서 사용되는 예제에서는 샘플 앱을 만들었으니 코드를 그대로 사용하셔도 됩니다. 구성은 다음과 같습니다. - Spring Boot 2.x - thymeleaf - Spring security - Spring security oauth2 1. Gradle 설정 compile('org.springframewor.. 2018. 7. 7.
[SpringBoot] (Spring Security) 로그인 후 호출했던 이전 페이지로 이동하기 로그인 하고나서 이전 페이지로 이동하는 방법에 대해 알아보겠습니다. 여기서는 총 파일 3개를 수정 or 생성합니다.LoginSuccessHandler.java // 로그인 완료 후 처리되는 핸들러 (AuthenticationSuccessHandler 인터페이스 구현)SecurityConfig.java // 스프링 시큐리티 설정파일LoginController.java // '/login' URL 을 매핑하는 클래스 해당 기능을 구현할 경우 다음의 장단점이 있습니다.- 장점. 로그인을 하고나서 전 페이지로 이동이 수월함- 단점. 로그인이 필요한 서비스로 이동하다가 걸린경우, 로그인 이후에 해당페이지로 이동하는게 아니라 호출한 페이지로 이동 예) /main 에서 /admin 으로 접근하다가 로그인이 걸린건데,.. 2018. 7. 6.
[SpringBoot] (Spring Security) 로그인 시 추가정보 User 에 담기 해당기능을 사용할 시 외부로그인 연동(네이버나 페이스북 로그인 등)시 세션처리에 문제를 겪을 수 있어 추천드리지 않습니다. 스프링 시큐리티에서는 로그인 하면 org.springframework.security.core.userdetails.User 클래스로 리턴하게 됩니다. 그리고 UserDetailService를 이용해 사용자 정보를 읽어냅니다.문제는 User 클래스는 username, password, authorities 등의 기본정보만 들어있습니다. 그래서 여기에 이메일이나 전화번호 등 추가정보를 넣어주려면 클래스를 새로 만들어주어야 합니다. 설정 순서는 다음과 같습니다.1) User 를 커스텀한 UserCustom 클래스를 작성.(Lombok 사용)2) UserDetailsService 인터페이.. 2018. 7. 5.
[SpringBoot] JPA 설정 및 테스트 JPA 란? JPA는 자바진영의 ORM 기술표준입니다. ORM이란 object-relational-mapping 객체와 관계형데이터베이스 매핑을 의미하는 것인데 하이버네이트(Hibernate) 오픈소스 ORM프레임워크를 기반으로 기술표준이 만들어진것이 JPA입니다. JPA의 장점 JPA를 사용하는 이유는 생산성, 유지보수, 성능 등을 꼽는데 우선 SQL문을 작성하지 않아도 된다는 점과 데이터베이스 중심 설계에서 객체 중심 설계로 변경됩니다. 그리고 DB컬럼이 추가될 때마다 테이블 수정이나 SQL 수정하는 과정이 없습니다. 그리고 같은 트랜잭션에 select가 여러번 호출된다면, 한번만 데이터베이스와 통신하고, 두번째부터는 조회한 객체를 재사용 합니다. 그래서 가장 큰 장점 2가지를 꼽자면 생산성 향상(코.. 2018. 7. 4.
[SpringBoot] Controller 테스트 작성하기.(Mybatis 테스트 포함) Controller의 URL호출에 작동하는지 확인하는 Test를 작성합니다. 해당 프로젝트에 Mybatis 연동을 마친상태라면(예를들어 @MapperScan 어노테이션을 이미 사용한 상태) 에러가 발생하니 @AutoConfigureMybatis 것을 반드시 추가합니다. 그러지 않으면 아래의 에러가 발생합니다. org.springframework.beans.factory.BeanCreationException: Error creating bean with name '매퍼인터페이스명' defined in file (...) Caused by: java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are .. 2018. 7. 3.
[SpringBoot] 에러 페이지 핸들러 클래스 만들기. 에러가 날 경우 에러페이지로 이동을 하게된다. SpringBoot 경우는 에러가 나면 whitelabel 페이지로 이동하여 다음과 같은 에러를 발생시킨다. Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Jun 29 18:29:14 KST 2018 There was an unexpected error (type=Not Found, status=404). No message available 에러페이지를 생성하려면 아래 클래스를 생성하자. /** * 에러페이지 핸들러 클래스 */ @Controller public class ErrorPageHand.. 2018. 7. 2.
반응형