server:
  port: 0 # random port

spring:
  application:
    name: user-service
  profiles:
    group:
      default: oauth
      docker: oauth
      cf: oauth
      k8s: oauth
  jpa:
    hibernate:
      ddl-auto: none
    properties:
      hibernate:
        dialect: org.hibernate.dialect.MySQL57Dialect
        storage_engine: innodb
        format_sql: true
        default_batch_fetch_size: 1000
        jdbc:
          batch_size: 1000
        order_inserts: true
        order_updates: true
    show-sql: true
  cache:
    jcache:
      config: classpath:ehcache.xml

# config server actuator
management:
  endpoints:
    web:
      exposure:
        include: refresh, health, beans
  health:
    mail:
      enabled: false

# @TODO application-oauth.yml
# spring:
#   security:
#     oauth2:
#       client:
#         registration:
#           google:
#             client-id: @TODO https://console.cloud.google.com
#             client-secret: @TODO
#             scope: profile,email
#           # 네이버는 Spring Security를 공식 지원하지 않기 때문에 CommonOAuth2Provider 에서 해주는 값들을 수동으로 입력한다.
#           naver:
#             client-id: @TODO https://developers.naver.com/apps/#/register?api=nvlogin
#             client-secret: @TODO
#             redirect_uri_template: "{baseUrl}/{action}/oauth2/code/{registrationId}"
#             authorization_grant_type: authorization_code
#             scope: name,email,profile_image
#             client-name: 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 의 이름을 네이버에서는 response로 지정해야한다. (네이버 회원 조회시 반환되는 JSON 형태 때문이다)
#             # response를 user_name으로 지정하고 이후 자바 코드로 response의 id를 user_name으로 지정한다. (스프링 시큐리티에서 하위 필드를 명시할 수 없기 때문)
#             user_name_attribute: response
