diff --git a/.gitignore b/.gitignore index 8c34548..28b9f53 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -*.yml HELP.md target/ !.mvn/wrapper/maven-wrapper.jar diff --git a/HashiCorp_Vault.md b/HashiCorp_Vault.md deleted file mode 100644 index 624b031..0000000 --- a/HashiCorp_Vault.md +++ /dev/null @@ -1,128 +0,0 @@ - -Загрузить в 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 🚀 - diff --git a/README.md b/README.md index 8ce0786..38a3079 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Refresh token токен действует 12 часов и за эти 12 ча vault kv put secret/org-ccalm-jwt jwt.secret=my-secret-value db.user=admin db.pass=123456 - - +В базе есть поля такие как e_iin и они записываются так: pgp_sym_encrypt('Мои данные', 'пароль') +Читаются так: select pgp_sym_decrypt(e_name, 'пароль') from main.drivers; ____ diff --git a/pom.xml b/pom.xml index 23cb209..1c54268 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ org.postgresql postgresql - 42.7.5 + 42.7.4 runtime diff --git a/src/main/java/org/ccalm/jwt/MainController.java b/src/main/java/org/ccalm/jwt/MainController.java index 1828c51..a750303 100644 --- a/src/main/java/org/ccalm/jwt/MainController.java +++ b/src/main/java/org/ccalm/jwt/MainController.java @@ -480,7 +480,7 @@ public class MainController implements ServletContextAware { String sql = """ select - name1 + name from main.get_access_list(:user_id) where @@ -667,7 +667,7 @@ public class MainController implements ServletContextAware { //parameters.addValue("phone",); parameters.addValue("email",newUserModel.getEmail()); parameters.addValue("e_iin",newUserModel.getIin()); //Для ЭЦП это поле обязательно - parameters.addValue("key",newUserModel.getIin()); + parameters.addValue("key",personal_data_key); parameters.addValue("password",password); ret = jdbcTemplate.query(sql, parameters, new DBTools.JsonRowMapper()); @@ -866,7 +866,7 @@ public class MainController implements ServletContextAware { }catch (DataAccessException ex){ String uuid = UUID.randomUUID().toString(); logger.error(uuid,ex); - throw new CustomException(10000, trt.trt("Error_executing_SQL_query"),uuid); + throw new CustomException(10000, trt.trt("Internal_Server_Error"),uuid); } if(json==null) { String msg = trt.trt("Invalid_username_and_or_password"); @@ -1082,8 +1082,8 @@ public class MainController implements ServletContextAware { } }catch (DataAccessException ex){ java.lang.String uuid = UUID.randomUUID().toString(); - logger.error("Error executing SQL query", uuid, ex); - throw new CustomException(10000, trt.trt("Error_executing_SQL_query"),uuid); + logger.error(uuid, ex); + throw new CustomException(10000, trt.trt("Internal_Server_Error"),uuid); }catch (Exception e) { String uuid = UUID.randomUUID().toString(); logger.error(uuid,e); @@ -1259,12 +1259,8 @@ public class MainController implements ServletContextAware { @RequestMapping(value = "/logout",method = {RequestMethod.POST,RequestMethod.GET},produces = "application/json;charset=utf-8") @ResponseBody public String logout(HttpServletResponse response,HttpServletRequest request) { - - //Устанавливает куки setAccessCookie(response,""); - setRefreshCookie(response, request, ""); - return createStrJSONError(0,"",(String)null,(String)null); } //------------------------------------------------------------------------------------------------------------------ @@ -1651,20 +1647,7 @@ public class MainController implements ServletContextAware { throw new CustomException(10000, Collections.singletonList(trt.trt("Please_log_in")),null); } UserDetails userDetails = (UserDetails) authentication.getPrincipal(); - /*if(jwt_a.isEmpty() || countOccurrences(jwt_a, '.')!=2) - { - throw new CustomException(10000, Collections.singletonList(trt.trt("Please_log_in")),null); - } - //Checking the token signature - Jws claims = null; - try { - claims = Jwts.parserBuilder() - .setSigningKey(getPublicKey()) //.setSigningKey(key_a) - .build() - .parseClaimsJws(jwt_a); - } catch (Exception e) { - throw new CustomException(10000, Arrays.asList(trt.trt("Please_log_in"), trt.trt("JWT_token_verification_error")),null); - }*/ + //If this is a repeat authorization, then we inform the client about it String result=null; try(Cache cache = new Cache(redis_host,redis_port,redis_password)) { diff --git a/src/main/java/org/ccalm/jwt/tools/Cache.java b/src/main/java/org/ccalm/jwt/tools/Cache.java index 02df6ed..a368cc7 100644 --- a/src/main/java/org/ccalm/jwt/tools/Cache.java +++ b/src/main/java/org/ccalm/jwt/tools/Cache.java @@ -12,7 +12,6 @@ import java.io.IOException; import java.io.InputStream; import java.util.Properties; - public class Cache implements AutoCloseable { private static final Logger logger = LogManager.getLogger(Cache.class); @@ -60,4 +59,4 @@ public class Cache implements AutoCloseable { public void delete(String key) { jedis.del(key.getBytes()); } -} +} \ No newline at end of file