# Conflicts:
#	pom.xml
This commit is contained in:
Igor I
2026-09-23 19:12:45 +05:00
5 changed files with 193 additions and 13 deletions
+20
View File
@@ -0,0 +1,20 @@
Записываем значения в Vault:
Записываем в kv хранилище:
```sh
vault kv put org-ccalm/jwt server.ssl.key-store-password=M4yh4
```
Читаем так:
```sh
vault kv get org-ccalm/jwt
```
Должно вывести:
```text
Key Value
--- -----
server.ssl.key-store-password M4yh4
```
+103
View File
@@ -0,0 +1,103 @@
server:
port: 8082
ssl:
enabled: true
key-store: classpath:keystore.p12
key-store-password: MFNX344yh4
key-store-type: PKCS12
key-alias: tomcat
issuer:
name: ccalm
spring:
# config:
# import:
# - vault://org-ccalm/jwt
# - vault://org-ccalm/public
cloud:
vault:
enabled: false
# uri: http://localhost:8200
# authentication: APPROLE
# app-role:
# role-id: c0064fe2-8f0e-b317-7fe7-66f7405b45a1
# secret-id: 24f31c88-7185-0d93-9a51-e221c2925265
# kv:
# kv-version: 2
application:
name: org-ccalm-jwt
datasource:
#url: jdbc:postgresql://10.0.0.1:5432/CCALM?ApplicationName=org_ccalm_main&connectTimeout=10000&socketTimeout=30000
url: jdbc:postgresql://ccalm.org:5432/CCALM?ApplicationName=org_ccalm_jwt&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000&compression=gzip
#url: jdbc:postgresql://127.0.0.1:5432/CCALM?ApplicationName=org_ccalm_jwt&ssl=true&sslmode=require&connectTimeout=10000&socketTimeout=10000&compression=gzip
username: app_authorization_1
password: 4699KEE464YKR0AW0EE464YK0AEE464YK
driver-class-name: org.postgresql.Driver
hikari:
maximum-pool-size: 10
minimum-idle: 5
max-lifetime: 1740000
idle-timeout: 300000
connection-timeout: 20000
connection-test-query: SELECT 1
validation-timeout: 5000
leak-detection-threshold: 30000
keepalive-time: 60000
jpa:
properties:
hibernate:
dialect: org.hibernate.dialect.PostgreSQLDialect
redis:
host: 127.0.0.1
port: 6379
password: 9F3/NKWeOjd815vkadT2DcgVHf6fEpVQXw==
mail:
host: smtp.yandex.ru
port: 465
login: info@ccalm.org
password: fu2lpsoGPGiq1xlRm8ag
captcha:
key: PPExpv36jk4Vzda3NpYnXLfuHCLYXqaNrxlOH/Jr/1M=
time: 600
url:
reset: https://ccalm.org/api/authorization/v02/reset
main: https://ccalm.org/
personal_data:
key: 7dd2Nek1
private:
key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDNgtaCfu5QlhWfU8bJAooLoX+bo/ARsvoWUJf5NodkGOivze5Lqtu5eq6ptT+gVKK+IEsjpmDsFPMCE2CW7xLZfgbtrWmTPd+fiRb2Z/fMudedo166H5WEgS3+TDWKt7WkLA/3kqvIqdBotuL4BENwZj6CIjGNdG01RNsCaDA/vxTkzx9njz6kfgAda/+wbdOJNwjNRgIb9AyedQT5OKvqRXequzrrOKD9wrm1O4nv8lA6WFg5YEMSW7T6WRIeArZsQr1aHv6qkiu47YreApfdFIWHxd9QinA9WrLPYdWXONr7+xyvqS4MHSJh9ZmCvMsc/HcF3RHJgEwgiC8E6hiZAgMBAAECggEAByZOICwaTmNqTSi0+blE5DKyJdAGQhdf6/bR0rG69BiJv9QCPk+rZUCHYxATLpjDMKoe8xaOuKfh7GiQK7AVj8t6ojouOhkk9n/mdJwZWt38Slesq/z9TqbP2tD769+ISjXeOFa58zk1Lu9t5gL/9aEY+54E607pnbjPhb3qL819/7absLbY1y3GKw2Cwd7RfP8nOWj0ViwnalFjfg6YZS1BL5c9NSg41FzZolwPruZ/bBGbc3nMW2khpuK7CtRk1pRJHUNYuVCsaBU4M4sf3tlZQPOdB6eYmQ3xmPtdnHYB13s588KialXKFlAuO4zG0CFa8DfIKsWDv6xTC1cMgQKBgQD6CjJuu715oKob7ohDTfrSppk4PY/kxWhUkKyKVW1Y1jXQOcd4BwVSyH6s7N8pCSWMwWmoF/t/l2kIcAWNZnsbzAQ8TYOhp1THstXMVb6c7JOL3SQC5RjbgW1RWCalh7/4QVE0xYeEL3qv5I2t9215zKR87Z6LIdJkxxAsHgMSbQKBgQDSaOp0kJZPkQH/75ltaI9exczyoaf+5U/OrnqT2lpRwa+5wqUTPWpTFTCDcJdu8OKCgrKPOQ6NACuX4PbIW/jR+70w7nbC46Tx3JdDYxBlm+6MuHUs5RXufFDJyGoN8lJzoPGax3uxY1kxWwSaSIB0sVXV/P3PIE31I5DbarWjXQKBgQCrRyLm4anYUCtWuN4UpK0lcUPR17Hi9ysRioz2sbAWw53XRk0SNlT6MSc9E4GGnaJgOflDUTJRY4lqYzoac1HvZ6CbIkoCCRq1NRbpQu8wlYo4q8JITWDqtE0LBMRsbYId77hN2uWKse9r37cBrVULsxgWD7uj+QYjTI0Se3iFPQJ/SSYwXFXn68F98Hxb2q1/KnOZzMBmpzcRh8kg1EYVIFc1wF7rBMVVMY0sUIXUH72fAcBuU1yCsoJcpXCQWxeeaWIbY+eDYj3CGlOWQtct3CVZyZJXKkR6W27cp0oFlNOp1okddbHkTsc7Ou1prDmIbwk3zi0mD9wrPg4fTijK/QKBgQDrYEWT77dQLPcN3RTVn3Ua2d9aj/IWwC330I4qZq2SFKOaB/olnPA6fLNYToTWO70A2ZlsMtVepdThIeYFidkA7Lj7lTVYFdQQzREsO5908A1YWE4sgMEEdMc7n5xKT85vpkPOjBOLZYQ6JjDeWBMDxnXR9/txwbau4bsq3/QFuQ==
public:
key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzYLWgn7uUJYVn1PGyQKKC6F/m6PwEbL6FlCX+TaHZBjor83uS6rbuXquqbU/oFSiviBLI6Zg7BTzAhNglu8S2X4G7a1pkz3fn4kW9mf3zLnXnaNeuh+VhIEt/kw1ire1pCwP95KryKnQaLbi+ARDcGY+giIxjXRtNUTbAmgwP78U5M8fZ48+pH4AHWv/sG3TiTcIzUYCG/QMnnUE+Tir6kV3qrs66zig/cK5tTuJ7/JQOlhYOWBDElu0+lkSHgK2bEK9Wh7+qpIruO2K3gKX3RSFh8XfUIpwPVqyz2HVlzja+/scr6kuDB0iYfWZgrzLHPx3Bd0RyYBMIIgvBOoYmQIDAQAB
access:
time: 600
refresh:
time: 43200
#logging.level.org.springframework.cloud.vault: DEBUG
#logging:
# level:
# org:
# springframework:
# cloud:
# vault: DEBUG
# org.springframework: WARN
# org.ccalm.jwt: ERROR
# com:
# zaxxer:
# hikari: WARN
# Swagger
springdoc:
api-docs:
enabled: true
path: /api-docs
swagger-ui:
enabled: true
path: /api-docs-ui
+19 -2
View File
@@ -46,9 +46,21 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId> <artifactId>spring-boot-starter-security</artifactId>
</dependency> </dependency>
<!-- WEB без Tomcat -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Undertow вместо Tomcat -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@@ -66,7 +78,7 @@
<dependency> <dependency>
<groupId>org.springframework.cloud</groupId> <groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-vault-config</artifactId> <artifactId>spring-cloud-starter-vault-config</artifactId>
<version>4.2.0</version> <version>4.3.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
@@ -168,6 +180,12 @@
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>8.1</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
@@ -188,7 +206,6 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration> <configuration>
<systemPropertyVariables> <systemPropertyVariables>
<spring.config.location>file:org-ccalm-jwt.yml</spring.config.location> <spring.config.location>file:org-ccalm-jwt.yml</spring.config.location>
@@ -352,10 +352,20 @@ public class MainController implements ServletContextAware {
@RequestMapping(value = "/",method = RequestMethod.GET,produces = "application/json;charset=utf-8") @RequestMapping(value = "/",method = RequestMethod.GET,produces = "application/json;charset=utf-8")
@ResponseBody @ResponseBody
public ResponseEntity<Object> index( public ResponseEntity<Object> index(
@CookieValue(value = "lng", defaultValue = "1") String language_id @CookieValue(value = "lng", defaultValue = "1") String language_id,
HttpServletRequest request
) { ) {
Translation trt = new Translation(language_id,jdbcTemplate); Translation trt = new Translation(language_id,jdbcTemplate);
try { try {
// Извлекаем заголовок Authorization
/*String authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
String token = authorizationHeader.substring(7); // Убираем "Bearer " из строки
System.out.println("Authorization Bearer Token: " + token);
} else {
System.out.println("Authorization Bearer Token: Not found or invalid");
}*/
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
json.put("error_code",0); json.put("error_code",0);
json.put("error_message",""); json.put("error_message","");
@@ -416,7 +426,7 @@ public class MainController implements ServletContextAware {
String sql = """ String sql = """
select select
us.name, us.name,
us.value COALESCE(us.value,'') as value
from from
main.Users_Settings us main.Users_Settings us
where where
+39 -9
View File
@@ -1,22 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<configuration> <configuration>
<conversionRule conversionWord="exOneLine" converterClass="org.ccalm.jwt.SingleLineThrowableProxyConverter"/> <!-- Ваш кастомный conversionRule для single-line исключений -->
<conversionRule conversionWord="exOneLine" converterClass="org.ccalm.dbms.SingleLineThrowableProxyConverter"/>
<property name="LOGS" value="logs" /> <property name="LOGS" value="logs" />
<springProperty scope="context" name="appName" source="spring.application.name"/> <springProperty scope="context" name="appName" source="spring.application.name"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOGS}/${appName}.log</file> <file>${LOGS}/${appName}.log</file>
<encoder> <encoder class="net.logstash.logback.encoder.LogstashEncoder">
<pattern>{"timestamp":"%d{yyyy-MM-dd'T'HH:mm:ss.SSS'Z'}","thread":"[%thread]","level":"%level","logger":"%logger{36}","marker":"%marker","message":"%msg","exception":"%exOneLine"}%n</pattern> <!-- Кастомные имена полей -->
<fieldNames>
<timestamp>timestamp</timestamp> <!-- Без @ -->
<level>level</level>
<message>message</message>
<stack_trace>exception</stack_trace>
<version>[ignore]</version>
<threadName>[ignore]</threadName>
<loggerName>[ignore]</loggerName>
<levelValue>[ignore]</levelValue>
<mdc>[ignore]</mdc>
</fieldNames>
<!-- Формат timestamp -->
<timestampPattern>yyyy-MM-dd'T'HH:mm:ss.SSS'Z'</timestampPattern>
<timestampTimeZone>UTC</timestampTimeZone>
<!-- Включаем маркеры (tags для MarkerFactory) -->
<includeTags>true</includeTags>
<!-- Отключаем лишние данные -->
<includeCallerData>false</includeCallerData>
<includeContext>false</includeContext>
<!-- Single-line исключения -->
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<maxDepthPerThrowable>1</maxDepthPerThrowable>
<maxLength>1024</maxLength>
<shortenedClassNameLength>20</shortenedClassNameLength>
<exclude>$$FastClassByCGLIB$$</exclude>
<exclude>$$EnhancerBySpringCGLIB$$</exclude>
</throwableConverter>
</encoder> </encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOGS}/${appName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern> <fileNamePattern>${LOGS}/${appName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>30</maxHistory> <maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <totalSizeCap>3GB</totalSizeCap>
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy> </rollingPolicy>
</appender> </appender>
@@ -28,10 +59,9 @@
</encoder> </encoder>
</appender> </appender>
<!--root level="warn"-->
<root level="info"> <root level="info">
<appender-ref ref="FILE" /> <appender-ref ref="FILE" />
<appender-ref ref="CONSOLE" /> <appender-ref ref="CONSOLE" />
</root> </root>
</configuration> </configuration>