Add logic to get unit_id from token sub claim

This commit is contained in:
kashiuno 2025-01-08 09:58:59 +03:00
parent 9d658cea12
commit a5c570ec42
3 changed files with 7 additions and 6 deletions

View File

@ -9,8 +9,8 @@ import java.util.*
private const val GET_ACTUAL_QRS_BY_UNIT_ID = """
SELECT q.start_date_time, q.end_date_time, q.door_id, q.key_code FROM qrs q
JOIN doors d ON (d.id = q.door_id)
JOIN oauth2_registered_client c ON (c.id = d.unit_id)
WHERE c.id = ? AND q.start_date_time <= CURRENT_TIMESTAMP AND q.end_date_time >= CURRENT_TIMESTAMP
JOIN oauth2_registered_client c ON (c.client_id = d.unit_id)
WHERE c.client_id = ? AND q.start_date_time <= CURRENT_TIMESTAMP AND q.end_date_time >= CURRENT_TIMESTAMP
"""
@Repository

View File

@ -1,5 +1,6 @@
package ru.vyatsu.qr_access_api.service
import org.springframework.security.core.context.SecurityContextHolder
import org.springframework.stereotype.Service
import ru.vyatsu.models.QrCode
import ru.vyatsu.qr_access_api.repository.QrRepository
@ -7,8 +8,7 @@ import ru.vyatsu.qr_access_api.repository.QrRepository
@Service
class QrSyncService(val qrRepository: QrRepository) {
fun getQrCodes(): List<QrCode> {
// TODO: Тут логика с извлечением клайма из jwt в котором идентификатор клиента лежит
val extractedUnitId = "945c8621-9adc-4a49-bc56-10253d27c581"
return qrRepository.getActualQrCodesByUnitId(extractedUnitId)
val sc = SecurityContextHolder.getContext()
return qrRepository.getActualQrCodesByUnitId(sc.authentication.name)
}
}

View File

@ -16,6 +16,7 @@ databaseChangeLog:
- column:
constraints:
nullable: false
unique: true
name: client_id
type: VARCHAR(100)
- column:
@ -119,5 +120,5 @@ databaseChangeLog:
baseColumnNames: unit_id
baseTableName: doors
constraintName: FK_unit_door
referencedColumnNames: id
referencedColumnNames: client_id
referencedTableName: oauth2_registered_client