1. MySQL에서 security 이름으로 DB 생성
2. spring_security이름으로 스프링 스타터 프로젝트 생성
3. application.yml 작성
application.properties를 .yml로 변경 후 작성
server:
port: 8080
servlet:
context-path: /
encoding:
charset: UTF-8
enabled: true
force: true
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/security?serverTimezone=Asia/Seoul
username: pure
password: pure1234
mvc:
view:
prefix: /templates/
suffix: .mustache
jpa:
hibernate:
ddl-auto: create #create update none
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
show-sql: true
security:
oauth2:
client:
registration:
google: # /oauth2/authorization/google 이 주소를 동작하게 한다.
client-id: 머시기
client-secret: 머시기
scope:
- email
- profile
facebook:
client-id: 머시기
client-secret: 머시기
scope:
- email
- public_profile
# 네이버는 OAuth2.0 공식 지원대상이 아니라서 provider 설정이 필요하다.
# 요청주소도 다르고, 응답 데이터도 다르기 때문이다.
naver:
client-id: 머시기
client-secret: 머시기
scope:
- name
- email
- profile_image
client-name: Naver # 클라이언트 네임은 구글 페이스북도 대문자로 시작하더라.
authorization-grant-type: authorization_code
redirect-uri: http://localhost:8080/login/oauth2/code/naver
provider:
naver:
authorization-uri: https://nid.naver.com/oauth2.0/authorize
token-uri: https://nid.naver.com/oauth2.0/token
user-info-uri: https://openapi.naver.com/v1/nid/me
user-name-attribute: response # 회원정보를 json의 response 키값으로 리턴해줌.
4. controller 작성
com.pure.security.controller에 IndexController.java를 만들어 준다.
package com.pure.security.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // View를 return 하겠다는 뜻.
public class IndexController {
@GetMapping({"","/"})
public String index() {
//mustache 기본폴더 src/main/resources/
//viewResolver 설정: templates(prefix) .mustache(suffix) (기본 설정이기 때문에 .yml에서 생략가능)
return "index"; //경로 : src/main/resources/templates/index.mustache
}
}
이렇게만 놔두면 src/main/resources/templates/index.mustache를 찾기 때문에 view 페이지를 만들 때 .mustache로 만들어야 해서 좋은 방법이 아니다.
5. WebMvcConfig.java 작성
com.pure.security.config 아래에 WebMvcConfig.java.를 작성한다.
위의 불편을 해소하고 .html로 바로 만들어 사용하기 위해 수동으로 viewResolver를 설정해준다.
package com.pure.security.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller // View를 return 하겠다는 뜻.
public class IndexController {
@GetMapping({"","/"})
public String index() {
//mustache 기본폴더 src/main/resources/
//viewResolver 설정: templates(prefix) .mustache(suffix) (기본 설정이기 때문에 .yml에서 생략가능)
return "index"; //경로 : src/main/resources/templates/index.mustache
}
}
'취업 준비 > Spring security' 카테고리의 다른 글
6. OAuth2 구글 로그인 (0) | 2022.02.17 |
---|---|
5. 시큐리티 권한처리 (0) | 2022.02.16 |
4. 로그인 만들기 (0) | 2022.02.16 |
3. 회원가입 만들기 (0) | 2022.02.10 |
2. 시큐리티 기본설정 (0) | 2022.02.10 |