# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

server:
  port: 8190
  address: 0.0.0.0
  ssl:
    key-store: classpath:keystore.p12
    key-password: 123456
    key-store-password: 123456
    key-alias: shenyu
    key-store-type: PKCS12

shenyu:
  register:
    registerType: http
    serverLists: http://localhost:9095
    props:
      username: admin
      password: 123456
  client:
      http:
        props:
          contextPath: /order
          protocol: https://
          appName: order
          port: 8190

logging:
  level:
    root: info
    org.springframework.boot: info
    org.apache.ibatis: info
    org.apache.shenyu.examples.bonuspoint: info
    org.apache.shenyu.examples.lottery: debug
    org.apache.shenyu.examples: debug

