[ 
https://issues.apache.org/jira/browse/KNOX-3317?focusedWorklogId=1019321&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-1019321
 ]

ASF GitHub Bot logged work on KNOX-3317:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 08/May/26 08:26
            Start Date: 08/May/26 08:26
    Worklog Time Spent: 10m 
      Work Description: smolnar82 opened a new pull request, #1225:
URL: https://github.com/apache/knox/pull/1225

   [KNOX-3317](https://issues.apache.org/jira/browse/KNOX-3317) - Add unit 
tests for TokenMetadataHeaderHandler
   
    ## What changes were proposed in this pull request?
   
   This PR introduces comprehensive unit tests for the 
`TokenMetadataHeaderHandler` class within the `gateway-service-restcatalog` 
module. 
   Specifically, it adds tests to:
    - Verify that no `NullPointerException` occurs when the 
`token-metadata-headers` configuration parameter is missing (null).
    - Ensure headers are correctly applied to outbound requests based on 
inbound client credentials and token metadata.
   - Validate support for custom header prefixes.
    - Confirm graceful handling of missing metadata items.
   
    ## How was this patch tested?
   
   The patch was tested by running the newly created unit tests and existing 
tests in the `gateway-service-restcatalog` module:
   `mvn -pl gateway-service-restcatalog test`
   
   The test suite `TokenMetadataHeaderHandlerTest` includes:
    - `testNullTokenMetadataHeadersConfig`: Verifies the fix for the NPE.
   - `testEmptyTokenMetadataHeadersConfig`: Verifies handling of empty 
configuration strings.
    - `testApplyHeaders`: Verifies correct mapping of multiple metadata items 
to headers.
   - `testApplyHeadersCustomPrefix`: Verifies that custom header prefixes are 
respected.
   - `testApplyHeadersMissingMetadata`: Verifies that headers are not added if 
metadata is missing.
   
    ## Integration Tests
   N/A
   
    ## UI changes
   (None)
   




Issue Time Tracking
-------------------

            Worklog Id:     (was: 1019321)
    Remaining Estimate: 0h
            Time Spent: 10m

> Fix NPE when no token metadata headers defined for ICEBERG-REST
> ---------------------------------------------------------------
>
>                 Key: KNOX-3317
>                 URL: https://issues.apache.org/jira/browse/KNOX-3317
>             Project: Apache Knox
>          Issue Type: Bug
>          Components: Server
>    Affects Versions: 3.0.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Critical
>             Fix For: 3.0.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> NOX-3279 introduces the ability to apply custom headers Knox dispatches to 
> ICEBERG-REST.
> The issue is that {{service.xml}} doesn't contain any dispatch element with `
> token-metadata-headers` which ends up in the following runtime exception:
>  
> {noformat}
> Caused by: java.lang.NullPointerException: Cannot invoke 
> "String.split(String)" because "tokenMetadataHeadersConfig" is null at 
> org.apache.knox.gateway.service.restcatalog.TokenMetadataHeaderHandler.getMetadataHeaderConfig(TokenMetadataHeaderHandler.java:93)
>  ~[gateway-service-restcatalog-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at 
> org.apache.knox.gateway.service.restcatalog.TokenMetadataHeaderHandler.<init>(TokenMetadataHeaderHandler.java:67)
>  ~[gateway-service-restcatalog-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at 
> org.apache.knox.gateway.service.restcatalog.RestCatalogHaDispatch.<init>(RestCatalogHaDispatch.java:36)
>  ~[gateway-service-restcatalog-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at 
> jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method) ~[?:?] at 
> jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
>  ~[?:?] at 
> jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
>  ~[?:?] at 
> java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) 
> ~[?:?] at java.lang.reflect.Constructor.newInstance(Constructor.java:481) 
> ~[?:?] at 
> org.apache.knox.gateway.dispatch.GatewayDispatchFilter.newInstanceFromName(GatewayDispatchFilter.java:226)
>  ~[gateway-spi-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at 
> org.apache.knox.gateway.dispatch.GatewayDispatchFilter.init(GatewayDispatchFilter.java:75)
>  ~[gateway-spi-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT] at 
> org.apache.knox.gateway.GatewayFilter$Holder.getInstance(GatewayFilter.java:421)
>  ~[gateway-server-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]{noformat}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to