[
https://issues.apache.org/jira/browse/KNOX-3202?focusedWorklogId=997096&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-997096
]
ASF GitHub Bot logged work on KNOX-3202:
Author: ASF GitHub Bot
Created on: 19/Dec/25 12:54
Start Date: 19/Dec/25 12:54
Worklog Time Spent: 10m
Work Description: hanicz opened a new pull request, #1134:
URL: https://github.com/apache/knox/pull/1134
…ls into DataSourceFactory
[KNOX-3202](https://issues.apache.org/jira/browse/KNOX-3202) - Add support
for Oracle DB as a Token State backend
## What changes were proposed in this pull request?
- Added `com.oracle.database.jdbc.ojdbc11` dependency [FDHUT
license](https://download.oracle.com/otn-pub/otn_software/jdbc/FDHUT_LICENSE.txt?AuthParam=1766128282_8dc11b81b7f2e6b326377dd9a559a1c9).
- Refactored `JDBCUtils` into factory pattern so every class has its clear
responsibilities.
- Introduced a new enum for database types.
- Created new sql files to separate derby, oracle and common DDL scripts.
This removes the on-the-fly replace calls on a single DDL script.
- Added new unit tests for Oracle database type.
## How was this patch tested?
`mvn clear verify`
Below manual tests:
I started up Knox with a specific database type, created a new token,
queried that token on the token management UI and also verified in the DB.
Tested oracle, derby, mysql, postgres and mariadb locally with docker images
Oracle: `gvenzl/oracle-free` `jdbc:oracle:thin:localhost:1521/FREEPDB1`
MariaDB: `mariadb:11`
`jdbc:mariadb://127.0.0.1:3306/testdb?user=testuser&password=testpass`
MySQL: `mysql:8.4`
PostgreSQL: `postgres:16`
Oracle:
```
gateway.service.tokenstate.impl
org.apache.knox.gateway.services.token.impl.JDBCTokenStateService
gateway.database.type
oracle
gateway.database.port
1521
gateway.database.host
localhost
gateway.database.name
FREEPDB1
OR
gateway.database.connection.url
jdbc:oracle:thin:localhost:1521/FREEPDB1
```
```
install/knox-3.0.0-SNAPSHOT/bin/knoxcli.sh generate-jwk --saveAlias
knox.token.hash.key
install/knox-3.0.0-SNAPSHOT/bin/knoxcli.sh create-aliases --alias
gateway_database_user --value SYSTEM --alias gateway_database_password --value
test
install/knox-3.0.0-SNAPSHOT/bin/knoxcli.sh create-aliases --alias
gateway_database_user --value appuser --alias gateway_database_password --value
apppass
```
https://github.com/user-attachments/assets/687baf0e-3cd9-4d39-b34e-fde93e005e88";
/>
https://github.com/user-attachments/assets/ed4103b1-bb57-478c-9388-4c5911cce804";
/>
Issue Time Tracking
---
Worklog Id: (was: 997096)
Remaining Estimate: 0h
Time Spent: 10m
> Add support for Oracle DB as a Token State backend
> --
>
> Key: KNOX-3202
> URL: https://issues.apache.org/jira/browse/KNOX-3202
> Project: Apache Knox
> Issue Type: Improvement
> Components: Server
>Affects Versions: 2.0.0, 1.6.0, 1.6.1, 2.1.0
>Reporter: Sandor Molnar
>Assignee: Tamás Hanicz
>Priority: Major
> Fix For: 3.0.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The currently supported JDBC TSS backends are:
> * PostgreSQL
> * MySQL
> * MariaDB
> * Derby (the default TSS implementation)
> * HSQL (used by our tests)
> Oracle DB is a well-known and frequently-used RDBMS, which Knox should
> support as well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)