...
Блок кода |
---|
language | bash |
---|
theme | Midnight |
---|
title | Ответ |
---|
collapse | true |
---|
|
{
"_links" : {
"healthbeans" : {
"templatedhref" : false"http://100.110.1.201:9098/actuator/beans",
"hreftemplated" : "http://<IP-address>:9098/actuator/health"false
},
"healthconfigprops-pathprefix" : {
"templated" : true,
"href" : "http://<IP-address>100.110.1.201:9098/actuator/healthconfigprops/{*pathprefix}"
},
"cachesenv-cachetoMatch" : {
"templatedhref" : true"http://100.110.1.201:9098/actuator/env/{toMatch}",
"hreftemplated" : "http://<IP-address>:9098/actuator/caches/{cache}"true
},
"selfhealth-path" : {
"href" : "http://<IP-address>100.110.1.201:9098/actuator/health/{*path}",
"templated" : falsetrue
},
"httptracecaches" : {
"templated" : false,
"href" : "http://<IP-address>100.110.1.201:9098/actuator/httptracecaches",
},
"templated" : false "info" : {
}, "env-toMatchtemplated" : {false,
"href" : "http://<IP-address>100.110.1.201:9098/actuator/env/{toMatch}info",
"templated" : true
},
"configpropshttptrace" : {
"href" : "http://<IP-address>100.110.1.201:9098/actuator/configpropshttptrace",
"templated" : false
},
"infoself" : {
"hreftemplated" : "http://<IP-address>:9098/actuator/info"false,
"templatedhref" : false"http://100.110.1.201:9098/actuator"
},
"configprops-prefixenv" : {
"templatedhref" : true"http://100.110.1.201:9098/actuator/env",
"hreftemplated" : "http://<IP-address>:9098/actuator/configprops/{prefix}"false
},
"threaddumpconfigprops" : {
"hreftemplated" : "http://<IP-address>:9098/actuator/threaddump"false,
"templatedhref" : false"http://100.110.1.201:9098/actuator/configprops"
},
"heapdumphealth" : {
"templated" : false,
"href" : "http://<IP-address>100.110.1.201:9098/actuator/heapdumphealth"
},
"envthreaddump" : {
"href" : "http://<IP-address>100.110.1.201:9098/actuator/envthreaddump",
"templated" : false
},
"cachesheapdump" : {
"href" : "http://<IP-address>100.110.1.201:9098/actuator/cachesheapdump",
"templated" : false
},
"beanscaches-cache" : {
"templatedhref" : false"http://100.110.1.201:9098/actuator/caches/{cache}",
"hreftemplated" : "http://<IP-address>:9098/actuator/beans"true
}
}
}
|
Конфигурация
...
Основной конфигурационный файл
Блок кода |
---|
language | yml |
---|
theme | RDark |
---|
title | /etc/eltex-papaya/config/application.yaml |
---|
collapse | true |
---|
|
server:
port: 9098
portal:
baseUrl: http://localhost<IP-address_portal>:9000/eltex_portal/
connectionTimeoutMs: 1000
totalConnections: 1
jwt:
configuration:
algorithm: RS256
keyLength: 2048
privateKeyFilePath: "/etc/eltex-papaya/keys/private.key"
publicKeyFilePath: "/etc/eltex-papaya/keys/public.key"
keyIdFilePath: "/etc/eltex-papaya/keys/keyId.txt"
discovery:
cacheTtlSeconds: 600
url: "https://m-c.tele2.ru/discovery<URL_Discovery>"
clientSecret: "fzh5zEB8746o0Ht8<Client_Secret>"
clientId: "discovery-Eltex<Client_ID>"
redirectUrl: "http://localhost<URL_Redirect>"
openid:
configCacheTtlSeconds: 600
authCacheTtlSeconds: 600
otpAuthCacheTtlSeconds: 600
notificationUri: "http://92.125.152.58:9098/notify/<URL_Notify>"
acrValue: "2"
version: "mc_si_r2_v1.0"
caching:
# We use this if we want replication. If it's disabled we don't need any network configuration
replicationEnabled: false
# Enable or disable multicast clustering
multicastEnabled: false
# Enable or disable auto detection
autoDetectionEnabled: false
# The address outside of the NAT network of a Docker Container, for example
# Leave this section empty and hazelcast chooses it's itself
publicAddress: ""
# Port of the public node
port: 57025703
# Do we need to propagate to further ports
portAutoIncrement: false
# Count of ports to propagate if portAutoIncrement is true
portCount: 1
# Available methods are:
# HOSTNAME - you need to specify the HOSTNAME environment variable inside your container that contains host and
# can be resolved to an IP Address
# IP_ADDRESS - you need to specify interfaceIp variable in this configuration or INTERFACE_IP variable in docker
# environment
# BIND_TO_ALL - hazelcast tries to bind itself to all known interfaces
# By Default IP_ADDRESS is used in Deb package and HOSTNAME in Docker environment
interfaceBindingMethod: "IP_ADDRESS"
# The IP Address by which we select binding interface in hazelcast.
# Works only if interfaceBindingMethods is INTERFACE_IP
interfaceIp: "127.0.0.1<IP-address>"
# List of the member servers of this cache cluster. You can list comma-separated IPv4, IPv6 addresses
# and resolvable hosthosts with ports separated by colon. NotIf resolvableport hostsnot configured - port from configuration parameter below
# will be used as default for all cluster nodes.
# Not resolvable hosts will be logged in error log.
servers:
# List hosts, ips here
[]
spring:
cloud:
discovery:
client:
composite-indicator:
enabled: false
management:
health:
defaults:
enabled: false
trace:
http:
enabled: true
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
# Actuator info
# Useful for inspecting deployed beans, watching metrics, watching caches info
# Also we can use it to create heapdump, threaddump, shutdown application and etc.
include: health, beans, info, caches, prometheus, env, threaddump, heapdump, configprops, httptrace
|
- Прослушиваемый сервисом порт:
...
Блок кода |
---|
|
portal:
baseUrl: http://localhost<IP-address_portal>:9000/eltex_portal/ # URL сервиса Captive Portal, на котором будет происходить аутентификация пользователей
connectionTimeoutMs: 1000 # Время ожидания подключения в милисекундах
totalConnections: 1 # Максимальное количество одновременных подключений |
...
Блок кода |
---|
|
discovery:
url: "https://https://m-c.tele2.ru/discovery/" <URL_Discovery>" # URL Discovery-сервиса
cacheTtlSeconds: 600 # Время хранения кэша в секундах
clientSecret: "<secret><Client_Secret>" # Ключ подключения
clientId: "<id><Client_ID>" # ID подключения
redirectUrl: "http://localhost<URL_Redirect>" # URL перенапрвления |
- Парамеры подключения OpenID:
...
Блок кода |
---|
|
caching:
replicationEnabled: false # Статус активации репликации
multicastEnabled: false # Статус активации мультикаста
autoDetectionEnabled: false # Cтатус активации автообнаружение нод
publicAddress: "" # Публичный адрес текущей ноды
port: 57025703 # Порт доступа к ноде
portAutoIncrement: false # Автоинкремент портов
portCount: 1 # Максимум портов для автоинкремента;
interfaceBindingMethod: "IP_ADDRESS" # Метод биндинга. Доступные методы:
## HOSTNAME — для этого режима необходимо задать переменную окружения HOSTNAME, которая может зарезолвиться в IP-адрес
## IP_ADDRESS — для этого режима необходимо задать значение переменной CACHING_INTERFACEIP
## BIND_TO_ALL — в этом режиме Hazelcast попытается использовать все доступные интерфейсы
## IP_ADDRESS используется для Deb пакетов, HOSTNAME используется в Docker environment
interfaceIp: "127.0.0.1" # IP-адрес интерфейса для биндинга
servers:
["172.16.0.1", "papaya-replicated-2"] # Cписок членов кластера в виде IPv4, IPv6 или hostname |
Блок кода |
---|
|
management: trace: http: enabled: true # Cписок членов кластера в виде IPv4, IPv6
|
Блок кода |
---|
|
management:
health:
defaults:
enabled: false
trace:
http:
enabled: true
endpoint:
health:
show-details: always
# Активация трассировки
endpoints:
web:
exposure:
# Actuator info
# Useful for inspecting deployed beans, watching metrics, watching caches info
# Also we can use it to create heapdump, threaddump, shutdown application and etc.
include: health, beans, info, caches, prometheus, env, threaddump, heapdump, configprops, httptrace
# Список параметров для отображения в трассировке
|
Настройка логирования
Блок кода |
---|
language | xml |
---|
theme | RDark |
---|
title | /etc/eltex-papaya/log4j2.xml |
---|
collapse | true |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Properties>
<Property name="maxSize" value="10MB"/>
<Property name="maxCount" value="10"/>
<Property name="logDir" value="/var/log/eltex-papaya"/>
<Property name="defaultPattern" value="%d{ISO8601} [%t] %-5p %logger{1} %C{1}.%M(line:%L). %m%n"/>
<Property name="gelfHost" value="udp:localhost"/>
<Property name="gelfPort" value="12201"/>
<Property name="gelfLevel" value="OFF"/>
<Property name="filenamePrefix" value="eltex-papaya"/>
</Properties>
<Appenders>
<RollingFile name="SPRING-INFO"
fileName="${logDir}/${filenamePrefix}-spring.log"
filePattern="${logDir}/spring/%d{yyyyMMdd}.%i.log">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<RollingFile name="SERVICE"
fileName="${logDir}/${filenamePrefix}.log"
filePattern="${logDir}/service/%d{yyyyMMdd}.%i.log">
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<RollingFile name="HAZELCAST"
fileName="${logDir}/${filenamePrefix}-hazelcast.log"
filePattern="${logDir}/hazelcast/%d{yyyyMMdd}.%i.log">
<PatternLayout>
<pattern>${defaultPattern}</pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="${maxSize}"/>
</Policies>
<DefaultRolloverStrategy max="${maxCount}"/>
</RollingFile>
<Gelf name="Gelf"
host="${gelfHost}"
port="${gelfPort}"
version="1.1"
facility="${filenamePrefix}"
extractStackTrace="true"
originHost="%host{fqdn}"
maximumMessageSize="8192">
<Field name="thread" pattern="%t"/>
<Field name="level" pattern="%level"/>
<Field name="severity" pattern="%-5level"/>
<Field name="logger" pattern="%logger{1}"/>
<Field name="location" pattern="%C{1}.%M(line:%L)"/>
</Gelf>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Gelf" level="${gelfLevel}"/>
</Root>
<Logger name="org.springframework" level="info">
<AppenderRef ref="SPRING-INFO"/>
</Logger>
<Logger name="org.eltex.softwlc.papaya" level="info">
<AppenderRef ref="SERVICE"/>
</Logger>
<Logger name="com.hazelcast" level="info">
<AppenderRef ref="HAZELCAST"/>
</Logger>
</Loggers>
</ConfigurationConfiguration>
|
- Максимально допустимый размер файла (при его превышении создается новый файл, а старый архивируется):
...
Блок кода |
---|
|
<Loggers>
<Root level="debuginfo"> |
Настройки инициализации сервиса
...
Блок кода |
---|
language | yml |
---|
theme | RDark |
---|
title | docker-compose.yml |
---|
|
version: "3"
services:
eltex-papaya:
ports:
- "${PAPAYA_SERVER_PORT}:${PAPAYA_SERVER_PORT}"
- "${CACHING_PORT}:${CACHING_PORT}"
#- "${PAPAYA_DEBUG_PORT}:${PAPAYA_DEBUG_PORT}"
container_name: eltex-papaya
image: ${ELTEX_HUB}/eltex-papaya:${SWLC_VERSION}
volumes:
- ${PAPAYA_CONFIG_DIR}/keys/:${PAPAYA_CONFIG_DIR}/keys/
environment:
# Порт внутри контейнера. По умолчанию 9098
- SERVER_PORT=${PAPAYA_SERVER_PORT}
# Порт удаленного дебага
- PAPAYA_DEBUG_PORT=${PAPAYA_DEBUG_PORT}
# URL сервиса Captive Portal, на котором будет происходить аутентификация пользователей
- PORTAL_BASEURL=${PORTAL_BASEURL}
# Таймаут подключения к Captive Portal
- PORTAL_CONNECTIONTIMEOUTMS=${PORTAL_CONNECTIONTIMEOUTMS}
# Число одновременных подключений к Captive Portal
- PORTAL_TOTALCONNECTIONS=${PORTAL_TOTALCONNECTIONS}
# Алгоритм генерации ключей
- JWT_CONFIGURATION_ALGORITHM=${JWT_CONFIGURATION_ALGORITHM}
# Длина ключа в битах
- JWT_CONFIGURATION_KEYLENGTH=${JWT_CONFIGURATION_KEYLENGTH}
# Путь к приватному ключу
- JWT_CONFIGURATION_PRIVATEKEYFILEPATH=${JWT_CONFIGURATION_PRIVATEKEYFILEPATH}
# Путь к публичному ключу
- JWT_CONFIGURATION_PUBLICKEYFILEPATH=${JWT_CONFIGURATION_PUBLICKEYFILEPATH}
# Путь к файлу, содержащему keyId ключа
- JWT_CONFIGURATION_KEYIDFILEPATH=${JWT_CONFIGURATION_KEYIDFILEPATH}
# Discovery
# Время жизни записи в кэше запросов Discovery
- DISCOVERY_CACHETTLSECONDS=${DISCOVERY_CACHETTLSECONDS}
# Адрес сервиса Discovery
- DISCOVERY_URL=${DISCOVERY_URL}
# Секрет для авторизации
- DISCOVERY_CLIENTSECRET=${DISCOVERY_CLIENTSECRET}
# Идентификатор клиента для авторизации
- DISCOVERY_CLIENTID=${DISCOVERY_CLIENTID}
# Зарегистрированный URL для перенаправления
- DISCOVERY_REDIRECTURL=${DISCOVERY_REDIRECTURL}
# Open ID
# Время жизни записи в кэше конфигураций MobileID
- OPENID_CONFIGCACHETTLSECONDS=${OPENID_CONFIGCACHETTLSECONDS}
# Время жизни записи в кэше авторизаций MobileID
- OPENID_AUTHCACHETTLSECONDS=${OPENID_AUTHCACHETTLSECONDS}
# Время жизни записи в кэше авторизаций по MobileID OTP
- OPENID_OTPAUTHCACHETTLSECONDS=${OPENID_OTPAUTHCACHETTLSECONDS}
# Адрес для обратных уведомлений от IDGW
- OPENID_NOTIFICATIONURI=${OPENID_NOTIFICATIONURI}
# Список запрашиваемых LoA
- OPENID_ACRVALUE=${OPENID_ACRVALUE}
# Версия приложения MobileID
- OPENID_VERSION=${OPENID_VERSION}
# Настройки Hazelcast
# Репликация
- CACHING_REPLICATIONENABLED=${CACHING_REPLICATIONENABLED}
# Мультикаст
- CACHING_MULTICASTENABLED=${CACHING_MULTICASTENABLED}
# Автообнаружение нод
- CACHING_AUTODETECTIONENABLED=${CACHING_AUTODETECTIONENABLED}
# Публичный адрес текущей ноды
- CACHING_PUBLICADDRESS=${CACHING_PUBLICADDRESS}
# Порт доступа к ноде
- CACHING_PORT=${CACHING_PORT}
# Автоинкремент портов
- CACHING_PORTAUTOINCREMENT=${CACHING_PORTAUTOINCREMENT}
# Максимум портов для автоинкремента
- CACHING_PORTCOUNT=${CACHING_PORTCOUNT}
# Доступные методы биндинга:
# HOSTNAME - для этого режима необходимо задать переменную окружения HOSTNAME которая может зарезолвиться в IP адрес
# IP_ADDRESS - для этого режима необходимо задать значение переменной CACHING_INTERFACEIP
# BIND_TO_ALL - в этом режиме Hazelcast попытается использовать все доступные интерфейсы
# IP_ADDRESS используется для Deb пакетов, HOSTNAME используется в Docker environment
- CACHING_INTERFACEBINDINGMETHOD=${CACHING_INTERFACEBINDINGMETHOD}
- CACHING_INTERFACEIP=${CACHING_INTERFACEIP}
# список членов кластера в виде IPv4, IPv6 или hostname
- CACHING_SERVERS=${CACHING_SERVERS}
# - CACHING_SERVERS_0=${CACHING_SERVERS_0}
# - CACHING_SERVERS_1=${CACHING_SERVERS_1}
# Изначальный размер хипа
- PAPAYA_JAVA_INIT_HEAP=${PAPAYA_JAVA_INIT_HEAP}
# Максимальный размер хипа
- PAPAYA_JAVA_MAX_HEAP=${PAPAYA_JAVA_MAX_HEAP}
# Путь, куда нужно складывать heap-dump в случае падения приложения
- PAPAYA_HEAP_DUMP_PATH=${PAPAYA_HEAP_DUMP_PATH}
# Внутренний путь до конфигурации сервиса
- PAPAYA_CONFIG_DIR=${PAPAYA_CONFIG_DIR}
# Настройки логирования
- PAPAYA_LOG_LEVEL=${PAPAYA_LOG_LEVEL}
- PAPAYA_CONSOLE_LEVEL=${PAPAYA_CONSOLE_LEVEL}
# Настройки Graylog
- GELF_LEVEL=${GELF_LEVEL}
- GELF_HOST=${GELF_HOST}
- GELF_PORT=${GELF_PORT}
|
...
Блок кода |
---|
language | yml |
---|
theme | RDark |
---|
title | .env |
---|
|
# Docker-репозиторий, где находится образ eltex-papaya.
# Для разработки: lab3.eltex.loc:5000
# Публичный: hub.eltex-co.ru/softwlc
ELTEX_HUB=hub.eltex-co.ru/softwlc
# Версия сервиса, которую нужно развернуть
# На feature-ветке — вида 1.23-<название_ветки>
SWLC_VERSION=1.23-<tag>
# Внешний порт контейнера eltex-papaya
PAPAYA_SERVER_PORT=9098
# Порт для удаленного дебага
PAPAYA_DEBUG_PORT=5015
# URL сервиса Captive Portal, на котором будет происходить аутентификация пользователей
PORTAL_BASEURL=http://<IP-address>address_portal>:9000/eltex_portal/
# Таймаут подключения к Captive Portal
PORTAL_CONNECTIONTIMEOUTMS=1000
# Число одновременных подключений к Captive Portal
PORTAL_TOTALCONNECTIONS=1
# Алгоритм генерации ключей
JWT_CONFIGURATION_ALGORITHM=RS256
# Длина ключа в битах
JWT_CONFIGURATION_KEYLENGTH=2048
# Путь к приватному ключу
JWT_CONFIGURATION_PRIVATEKEYFILEPATH=/etc/eltex-papaya/keys/private.key
# Путь к публичному ключу
JWT_CONFIGURATION_PUBLICKEYFILEPATH=/etc/eltex-papaya/keys/public.key
# Путь к файлу, содержащему keyId ключа
JWT_CONFIGURATION_KEYIDFILEPATH=/etc/eltex-papaya/keys/keyId.txt
# Discovery
# Время жизни записи в кэше запросов Discovery
DISCOVERY_CACHETTLSECONDS=600
# Адрес сервиса Discovery
DISCOVERY_URL=https://m-c.tele2.ru/discovery<URL_Discovery>
# Секрет для авторизации
DISCOVERY_CLIENTSECRET=<client-secret>"<Client_Secret>"
# Идентификатор клиента для авторизации
DISCOVERY_CLIENTID=<client-id>"<Client_ID>"
# Зарегистрированный URL для перенаправления
DISCOVERY_REDIRECTURL=<Redirect"<URL_Redirect>"
URL>
# Open ID
# Время жизни записи в кэше конфигураций MobileID
OPENID_CONFIGCACHETTLSECONDS=600
# Время жизни записи в кэше авторизаций MobileID
OPENID_AUTHCACHETTLSECONDS=600
# Время жизни записи в кэше авторизаций по MobileID OTP
OPENID_OTPAUTHCACHETTLSECONDS=600
# Адрес для обратных уведомлений от IDGW
OPENID_NOTIFICATIONURI=http://<PUBLIC_IP>:9098/notify
# Список запрашиваемых LoA
OPENID_ACRVALUE=2
# Версия приложения MobileID
OPENID_VERSION=mc_si_r2_v1.0
# Настройки Hazelcast
# Репликация
CACHING_REPLICATIONENABLED=false
# Мультикаст
CACHING_MULTICASTENABLED=false
# Автообнаружение нод
CACHING_AUTODETECTIONENABLED=false
# Публичный адрес текущей ноды
CACHING_PUBLICADDRESS=""
# Порт доступа к ноде
CACHING_PORT=57025703
# Автоинкремент портов
CACHING_PORTAUTOINCREMENT=false
# Максимум портов для автоинкремента
CACHING_PORTCOUNT=1
# Доступные методы биндинга:
# HOSTNAME - для этого режима необходимо задать переменную окружения HOSTNAME которая может зарезолвиться в IP адрес
# IP_ADDRESS - для этого режима необходимо задать значение переменной CACHING_INTERFACEIP
# BIND_TO_ALL - в этом режиме Hazelcast попытается использовать все доступные интерфейсы
# IP_ADDRESS используется для Deb пакетов, HOSTNAME используется в Docker environment
CACHING_INTERFACEBINDINGMETHOD=IP_ADDRESS
CACHING_INTERFACEIP=127.0.0.1
# список членов кластера в виде IPv4, IPv6 или hostname
CACHING_SERVERS=
# Изначальный размер хипа
PAPAYA_JAVA_INIT_HEAP=8m
# Максимальный размер хипа
PAPAYA_JAVA_MAX_HEAP=64m
# Путь, куда нужно складывать heap-dump в случае падения приложения
PAPAYA_HEAP_DUMP_PATH=/var/log/eltex-papaya
# Внутренний путь до конфигурации сервиса
PAPAYA_CONFIG_DIR=/etc/eltex-papaya
# Настройки логирования
PAPAYA_LOG_LEVEL=INFO
PAPAYA_CONSOLE_LEVEL=INFO
# Настройки Graylog
# Вместо <graylog_server_ip> нужно указать настоящий адрес сервера Graylog или localhost
GELF_LEVEL=OFF
GELF_HOST=udp:localhost
GELF_PORT=12201
|
Описание переменных окружения
...
- CACHING_REPLICATIONENABLED — статус активации репликация;
- CACHING_MULTICASTENABLED — статус активации мультикаста;
- CACHING_AUTODETECTIONENABLED — статус активации автообнаружение нод;
- CACHING_PUBLICADDRESS — публичный адрес текущей ноды;
- CACHING_PORT — порт доступа к ноде;
- CACHING_PORTAUTOINCREMENT — автоинкремент портов;
- CACHING_PORTCOUNT — максимум портов для автоинкремента;
- CACHING_INTERFACEBINDINGMETHOD — Метод биндинга. Доступные методы:
- HOSTNAME — для этого режима необходимо задать переменную окружения HOSTNAME, которая может зарезолвиться в IP-адрес
- IP_ADDRESS — для этого режима необходимо задать значение переменной CACHING_INTERFACEIP
- BIND_TO_ALL — в этом режиме Hazelcast попытается использовать все доступные интерфейсы
IP_ADDRESS используется для Deb пакетов, HOSTNAME используется в Docker environment
- CACHING_INTERFACEIP — IP-адрес интерфейса для биндинга:
- CACHING_SERVERS — список членов второй член кластера в виде IPv4, IPv6 или hostname, если в кластере используются 2 ноды:
- CACHING_SERVERS_0 - IP-адрес текущей ноды, если в кластере используется более 2 нод:
- CACHING_SERVERS_<N> - IP-адрес N ноды, если в кластере используется более 2 нод.
Параметры инициализации сервиса
...
Расшифровка логов papaya |
---|
Пользователь отклонил системное уведомление о входе на портал, либо оператор не смог его прислать. | OpenIdAuthorizationService.processNotifyRequest$suspendImpl(line:145). User not authorized because of: authorization_error:user denies the request or authentication fails |
Слишком долго ждали нажатия "ОК", либо вовсе его не нажали. Неуспешная авторизация. | OpenIdAuthorizationService.processNotifyRequest$suspendImpl(line:145). User not authorized because of: authorization_error:Subscriber consent waiting time expired |
Получено уведомление о статусе авторизации пользователя MobileID. Внутри ID сессии и номер телефона, если пользователь находится в кэше. | OpenIdAuthorizationService.processNotifyRequest$suspendImpl(line:143). Received notify with request id 3485f838-9f7c-4349-9f54-a35d6f8ab49f. Phone 79585150889 |
Успешно отправили запрос на авторизацию пользователя с номером телефона в MobileID. Ждём уведомления от MobileID. | OpenIdAuthorizationService.processMobileIdAuth$suspendImpl(line:198). Auth success for 79585150889. Waiting for auth notification |
Получили от портала запрос на авторизацию с представленным номером телефона. Замечание: нельзя одновременно авторизоваться с одним номером телефона на двух устройствах. MobileID держит только одну сессию за время, так что на одном из устройств будет неуспех. | OpenIdAuthorizationService.processMobileIdAuth$suspendImpl(line:184). Received auth request for phone 79585150889 |
Ответ на запрос проверки SMS-кода по схеме Пользователь -> Портал -> Папайа -> MobileID. В данном случае введённый SMS-код верный. | OpenIdAuthorizationService.processMobileIdOtpAuth$suspendImpl(line:241). SMS status is correct for c8f4e1a4-0a71-4eaf-bae5-74491c2076cd : 79930086782 |
Получен SMS-код от портала на проверку в MobileID. | OpenIdAuthorizationService.processMobileIdOtpAuth$suspendImpl(line:222). Received sms code from portal service. Phone 79930086782 |
Статус проверки SMS - введённый код неверный. | penIdAuthorizationService.processMobileIdOtpAuth$suspendImpl(line:241). SMS status is incorrect for c8f4e1a4-0a71-4eaf-bae5-74491c2076cd : 79930086782 |
Код из SMS неверный. Оставшееся количество попыток: 2. Это сообщение, которое приходит в папаю из MobileID. | penIdAuthorizationService$performOtpAuthRequest$2.invokeSuspend(line:128). Error while sending auth request to MobileID platform 5135:FORBIDDEN: remaining attempts: 2 |
Сообщение от MobileID - превышено число попыток проверки SMS-кода. | OpenIdAuthorizationService$performOtpAuthRequest$2.invokeSuspend(line:128). Error while sending auth request to MobileID platform 5136:LIMIT_REACHED |
MobileID открыл сессию OTP для пользователя с представленным номером. Ожидаем ввода пользователя на портале, после этого проверяем SMS-код. | OpenIdAuthorizationService.processOtpNotifyRequest$suspendImpl(line:162). Received OTP notify with request id c8f4e1a4-0a71-4eaf-bae5-74491c2076cd. Phone 79930086782 |
Не можем отправить запрос на авторизацию пользователя с таким номером, так как его оператор не подключен к MobileID, либо не подключен в профиле С-П на Discovery. | OpenIdDiscoveryService$sendDiscoveryRequest$2.invokeSuspend(line:61). Can't perform discovery with specified phone 79293810070. Details: 404 NOT_FOUND "Not_Found_Entity:There is no organization with the specified MSISDN" |
Превысили число проверок SMS-кода на MobileID. OTP-сессия завершилась неуспешно. | OpenIdAuthorizationService.processNotifyRequest$suspendImpl(line:145). User not authorized because of: authorization_error:OTP authentication failed |
Исчерпали число попыток для проверки СМС. OTP-сессия после этого закрывается и получаем ошибку авторизации. | OpenIdAuthorizationService.processMobileIdOtpAuth$suspendImpl(line:241). SMS status is limit_reached for 185de01e-6637-46d3-92ab-6b4905e13a71 : 79930086782 |
Настройка кластера
...
Настройка кластера при использовании deb-пакетов
Настройка выполняется в файле /etc/eltex-papaya/config/application.yml в разделе "caching".
Алгоритм минимальной настройки:
- Включить репликацию:
Блок кода |
---|
|
replicationEnabled: true |
2. Указать тип привязки:
Блок кода |
---|
|
interfaceBindingMethod: "IP_ADDRESS" |
3. Указать IP-адрес интерфейса привязки:
Блок кода |
---|
|
interfaceIp: "100.110.1.201" |
4. Перечислить участников кластера:
Блок кода |
---|
|
servers:
[100.110.1.201:5703, 100.110.2.50:5703] |
Параметры необходимо настроить на всех нодах и перезапустить сервис на всех серверах-участниках.
Настройка кластера при использовании двух docker-контейнеров
Настройка параметров выполняется в файле переменных окружения .env.
Алгоритм минимальной настройки:
- Включить репликацию:
Блок кода |
---|
|
CACHING_REPLICATIONENABLED=true |
2. Указать публичный адрес сервера:
Блок кода |
---|
|
CACHING_PUBLICADDRESS=100.110.1.201 |
3. Указать тип привязки:
Блок кода |
---|
|
CACHING_INTERFACEBINDINGMETHOD=HOSTNAME |
4. Указать IP-адрес второй ноды
Блок кода |
---|
|
CACHING_SERVERS=100.110.2.50 |
Параметры необходимо настроить на всех нодах и перезапустить контейнер на всех серверах-участниках.
Настройка кластера при использовании более двух docker-контейнеров
Настройка параметров выполняется в файле переменных окружения .env.
Алгоритм минимальной настройки:
- Включить репликацию:
Блок кода |
---|
|
CACHING_REPLICATIONENABLED=true |
2. Указать публичный адрес сервера:
Блок кода |
---|
|
CACHING_PUBLICADDRESS=100.110.1.201 |
3. Указать тип привязки:
Блок кода |
---|
|
CACHING_INTERFACEBINDINGMETHOD=HOSTNAME |
4. Указать IP-адрес текущей ноды
Блок кода |
---|
|
CACHING_SERVERS_0=100.110.1.201 |
5. Указать IP-адрес второй ноды
Блок кода |
---|
|
CACHING_SERVERS_1=100.110.2.50 |
6. Указать IP-адрес третей ноды
Блок кода |
---|
|
CACHING_SERVERS_2=100.110.2.56 |
7. Добавить в docker-compose.yml новые переменные и удалить старую:
Блок кода |
---|
|
# - CACHING_SERVERS=${CACHING_SERVERS}
- CACHING_SERVERS_0=${CACHING_SERVERS_0}
- CACHING_SERVERS_1=${CACHING_SERVERS_1}
- CACHING_SERVERS_2=${CACHING_SERVERS_2} |
Параметры необходимо настроить на всех нодах и перезапустить контейнер на всех серверах-участниках.
Проверка состояния кластера
Проверить состояние кластера можно командой:
Блок кода |
---|
|
root@ubuntu:~/papaya# curl -X GET http://100.110.1.201:9098/actuator/health/hazelcast | json_pp
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 415 100 415 0 0 25937 0 --:--:-- --:--:-- --:--:-- 25937
{
"details" : {
"members" : [
{
"uuid" : "15e43aae-fe31-4804-bd57-b8a46bcf1bf1",
"localMember" : false,
"address" : "[100.110.2.50]:5703",
"liteMember" : false,
"memberVersion" : "4.2.5"
},
{
"localMember" : true,
"uuid" : "739d7ea4-d6e4-46c3-a86c-080ec2d0fc69",
"address" : "[100.110.1.201]:5703",
"memberVersion" : "4.2.5",
"liteMember" : false
}
],
"uuid" : "739d7ea4-d6e4-46c3-a86c-080ec2d0fc69",
"state" : "ACTIVE",
"name" : "competent_hermann"
},
"status" : "UP"
} |
Команда является единой для всех видов запуска.