Merge branch 'main' of http://10.101.1.7/locust/org.ccalm.jwt
This commit is contained in:
128
HashiCorp_Vault.md
Normal file
128
HashiCorp_Vault.md
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
|
||||||
|
Загрузить в HashiCorp Vault настройки можно так:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
vault kv put secret/org-ccalm-jwt \
|
||||||
|
jwt.secret=my-secret-value \
|
||||||
|
db.user=admin \
|
||||||
|
db.pass=123456
|
||||||
|
```
|
||||||
|
|
||||||
|
Разбор параметров:
|
||||||
|
1. vault kv put – команда для записи ключей и значений в KV-хранилище Vault.
|
||||||
|
2. secret/org-ccalm-jwt – путь к секрету.
|
||||||
|
* secret/ – это backend-хранилище (оно должно быть включено в Vault).
|
||||||
|
* org-ccalm-jwt – имя секрета, под которым сохраняются параметры.
|
||||||
|
3. jwt.secret=my-secret-value – ключ jwt.secret со значением my-secret-value.
|
||||||
|
4. db.user=admin – ключ db.user со значением admin.
|
||||||
|
5. db.pass=123456 – ключ db.pass со значением 123456.
|
||||||
|
|
||||||
|
|
||||||
|
# 🚀 Установка и настройка HashiCorp Vault на Windows
|
||||||
|
|
||||||
|
## 📌 1. Установка HashiCorp Vault
|
||||||
|
|
||||||
|
1. **Скачайте Vault CLI** с официального сайта:
|
||||||
|
🔗 [https://developer.hashicorp.com/vault/downloads](https://developer.hashicorp.com/vault/downloads)
|
||||||
|
2. Распакуйте архив и **добавьте путь к `vault.exe` в `PATH`**:
|
||||||
|
- Кликните **ПКМ → Этот компьютер → Свойства → Дополнительные параметры системы**.
|
||||||
|
- В **Переменные среды** добавьте путь к папке с `vault.exe`.
|
||||||
|
3. Откройте **cmd** или **PowerShell** и проверьте установку командой:
|
||||||
|
```sh
|
||||||
|
vault --version
|
||||||
|
```
|
||||||
|
Если всё ОК, увидите версию Vault. Примерно такую: Vault v1.18.4 (503be623a3697e8c10c254dc87d26492c46753e1), built 2025-01-29T13:57:54Z
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 2. Запуск Vault-сервера (разработческий режим)
|
||||||
|
|
||||||
|
Чтобы локально запустить Vault в **dev-режиме** (без авторизации), выполните:
|
||||||
|
```sh
|
||||||
|
vault server -dev
|
||||||
|
```
|
||||||
|
После запуска он покажет **root-токен** (сохраните его!):
|
||||||
|
```plaintext
|
||||||
|
Unseal Key: 9OSMJSPNCs9IT/H5OzLz17jW/vogeCAWQbXy2K7LRPQ=
|
||||||
|
Root Token: hvs.JDIyKgDMagA0WyIhLFQ4mAjZ
|
||||||
|
```
|
||||||
|
|
||||||
|
Теперь Vault работает по адресу:
|
||||||
|
```
|
||||||
|
http://127.0.0.1:8200
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 3. Экспорт токена (чтобы не вводить каждый раз)
|
||||||
|
|
||||||
|
Откройте **PowerShell** и выполните:
|
||||||
|
```sh
|
||||||
|
$env:VAULT_ADDR="http://127.0.0.1:8200"
|
||||||
|
$env:VAULT_TOKEN="hvs.JDIyKgDMagA0WyIhLFQ4mAjZ"
|
||||||
|
```
|
||||||
|
(Замените `hvs.JDIyKgDMagA0WyIhLFQ4mAjZ` на свой токен.)
|
||||||
|
|
||||||
|
Теперь можно работать с Vault без ввода токена каждый раз.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 4. Запись значений в Vault на Windows
|
||||||
|
|
||||||
|
Если нужно с версионированием то Используйте команду:
|
||||||
|
```sh
|
||||||
|
vault kv put secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||||
|
```
|
||||||
|
Если у вас **KV v1**, используйте:
|
||||||
|
```sh
|
||||||
|
vault write secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 5. Проверка сохранённых данных
|
||||||
|
|
||||||
|
Чтобы посмотреть, что записано в Vault:
|
||||||
|
```sh
|
||||||
|
vault kv get secret/org-ccalm-jwt
|
||||||
|
```
|
||||||
|
Если всё настроено правильно, вы увидите примерно такой вывод:
|
||||||
|
```plaintext
|
||||||
|
====== Metadata ======
|
||||||
|
Key Value
|
||||||
|
--- -----
|
||||||
|
created_time 2025-02-24T12:00:00Z
|
||||||
|
version 1
|
||||||
|
|
||||||
|
====== Data ======
|
||||||
|
Key Value
|
||||||
|
--- -----
|
||||||
|
db.pass 123456
|
||||||
|
db.user admin
|
||||||
|
jwt.secret my-secret-value
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📌 6. Удаление данных из Vault
|
||||||
|
|
||||||
|
Удаление данных:
|
||||||
|
```sh
|
||||||
|
vault kv delete secret/org-ccalm-jwt
|
||||||
|
```
|
||||||
|
Полное уничтожение (без возможности восстановления):
|
||||||
|
```sh
|
||||||
|
vault kv destroy -versions=1 secret/org-ccalm-jwt
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Итог
|
||||||
|
✅ Установили Vault CLI
|
||||||
|
✅ Запустили Vault сервер (`vault server -dev`)
|
||||||
|
✅ Экспортировали `VAULT_ADDR` и `VAULT_TOKEN`
|
||||||
|
✅ Записали настройки в Vault
|
||||||
|
✅ Проверили данные
|
||||||
|
|
||||||
|
Теперь можно интегрировать Vault в Spring Boot 🚀
|
||||||
|
|
||||||
@ -4,6 +4,15 @@ ____
|
|||||||
Refresh token токен действует 12 часов и за эти 12 часов не реже чем раз в 3 часа нужно обновить Refresh token ну и заодно Access token обновиться.
|
Refresh token токен действует 12 часов и за эти 12 часов не реже чем раз в 3 часа нужно обновить Refresh token ну и заодно Access token обновиться.
|
||||||
Аccess token действует 20 минут (позже уменьшу до 10 минут) и его можно обновить в любое время, если будет просрочен выдаст 401 ошибку. Чтобы время от времени по расписанию не запрашивать обновление токена,
|
Аccess token действует 20 минут (позже уменьшу до 10 минут) и его можно обновить в любое время, если будет просрочен выдаст 401 ошибку. Чтобы время от времени по расписанию не запрашивать обновление токена,
|
||||||
можно сделать обвёртку для 2й отправки запроса, в случае выявления просрочки токена чтобы эта обвёртка отправляла запрос Refresh, а потом обратно в нужное место отправляла запрос.
|
можно сделать обвёртку для 2й отправки запроса, в случае выявления просрочки токена чтобы эта обвёртка отправляла запрос Refresh, а потом обратно в нужное место отправляла запрос.
|
||||||
|
|
||||||
|
Настройки хранятся в HashiCorp Vault и их можно загрузить туда так:
|
||||||
|
|
||||||
|
vault kv put secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
____
|
____
|
||||||
## Оглавление
|
## Оглавление
|
||||||
1. [Получить список разрешений для пользователя по Access token](#получить-список-разрешений-для-пользователя-по-Access-token)
|
1. [Получить список разрешений для пользователя по Access token](#получить-список-разрешений-для-пользователя-по-Access-token)
|
||||||
|
|||||||
@ -11,8 +11,16 @@ issuer:
|
|||||||
spring:
|
spring:
|
||||||
application:
|
application:
|
||||||
name: kz_istransit_jwt
|
name: kz_istransit_jwt
|
||||||
|
cloud:
|
||||||
|
vault:
|
||||||
|
uri: http://localhost:8200 # URL твоего Vault
|
||||||
|
token: hvs.JDIyKgDMagA0WyIhLFQ4mAjZ # Токен доступа (лучше подгружать из ENV)
|
||||||
|
kv:
|
||||||
|
enabled: true
|
||||||
|
backend: secret # Название backend (например, `secret/` в Vault)
|
||||||
|
default-context: application
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:postgresql://mcp.kz:5432/mcp
|
url: jdbc:postgresql://10.101.1.6:5432/transit
|
||||||
username: igor
|
username: igor
|
||||||
password: VnzbUdcePSLtg22ktz13
|
password: VnzbUdcePSLtg22ktz13
|
||||||
driver-class-name: org.postgresql.Driver
|
driver-class-name: org.postgresql.Driver
|
||||||
|
|||||||
@ -12,7 +12,7 @@ spring:
|
|||||||
application:
|
application:
|
||||||
name: kz_istransit_jwt
|
name: kz_istransit_jwt
|
||||||
datasource:
|
datasource:
|
||||||
url: jdbc:postgresql://mcp.kz:5432/mcp
|
url: jdbc:postgresql://10.201.3.36:5432/mcp
|
||||||
username: igor
|
username: igor
|
||||||
password: VnzbUdcePSLtg22ktz13
|
password: VnzbUdcePSLtg22ktz13
|
||||||
driver-class-name: org.postgresql.Driver
|
driver-class-name: org.postgresql.Driver
|
||||||
|
|||||||
@ -1,11 +1,19 @@
|
|||||||
|
#Серверные настройки должны браться с voult
|
||||||
|
|
||||||
server:
|
server:
|
||||||
port: 8082
|
port: 8082
|
||||||
ssl:
|
ssl:
|
||||||
enabled: true
|
enabled: true
|
||||||
key-store: classpath:keystore.jks
|
key-store: classpath:keystore.jks
|
||||||
key-store-password: MFNX344yh4
|
#key-store-password: MFNX344yh4
|
||||||
key-store-type: PKCS12
|
key-store-type: PKCS12
|
||||||
|
|
||||||
|
#server.ssl.key-store-password: MFNX344yh4
|
||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: org-ccalm-jwt
|
||||||
|
|
||||||
|
|
||||||
issuer:
|
issuer:
|
||||||
name: ccalm
|
name: ccalm
|
||||||
|
|
||||||
|
|||||||
11
org_ccalm_jwt_vault.yml
Normal file
11
org_ccalm_jwt_vault.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
spring:
|
||||||
|
application:
|
||||||
|
name: org-ccalm-jwt
|
||||||
|
cloud:
|
||||||
|
vault:
|
||||||
|
uri: http://localhost:8200 # URL твоего Vault
|
||||||
|
token: my-root-token # Токен доступа (лучше подгружать из ENV)
|
||||||
|
kv:
|
||||||
|
enabled: true
|
||||||
|
backend: secret # Название backend (например, `secret/` в Vault)
|
||||||
|
default-context: application
|
||||||
4
pom.xml
4
pom.xml
@ -63,6 +63,10 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-vault-config</artifactId>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.postgresql</groupId>
|
<groupId>org.postgresql</groupId>
|
||||||
<artifactId>postgresql</artifactId>
|
<artifactId>postgresql</artifactId>
|
||||||
|
|||||||
Reference in New Issue
Block a user