[
https://issues.apache.org/jira/browse/KNOX-2982?focusedWorklogId=898684&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-898684
]
ASF GitHub Bot logged work on KNOX-2982:
----------------------------------------
Author: ASF GitHub Bot
Created on: 09/Jan/24 13:14
Start Date: 09/Jan/24 13:14
Worklog Time Spent: 10m
Work Description: zeroflag opened a new pull request, #832:
URL: https://github.com/apache/knox/pull/832
## What changes were proposed in this pull request?
When there are multiple providers in one topology, knox gets the first one,
without checking if it's enabled or disabled.
Therefore having 2 identity-assertion providers where the first is disabled
and the 2nd is enabled, doesn't work.
We find the first enabled provider instead.
## How was this patch tested?
1st provider enabled
```xml
<provider>
<role>identity-assertion</role>
<name>SwitchCase</name>
<enabled>true</enabled>
<param>
<name>principal.case</name>
<value>upper</value>
</param>
<param>
<name>group.principal.case</name>
<value>upper</value>
</param>
</provider>
```
2nd provider disabled:
```xml
<provider>
<role>identity-assertion</role>
<name>Regex</name>
<enabled>false</enabled>
<param>
<name>input</name>
<value>ad(.*)</value>
</param>
<param>
<name>output</name>
<value>{1}max</value>
</param>
</provider>
```
```
curl -vk -u admin:admin-password https://localhost:8443/gateway/sandbox/hive
24/01/09 14:04:50
||eddb35a8-c6d7-4ae7-9d50-b0b3e50fddaa|audit|127.0.0.1|HIVE|admin|ADMIN||identity-mapping|principal|admin|success|Effective
User: ADMIN
24/01/09 14:04:50
||eddb35a8-c6d7-4ae7-9d50-b0b3e50fddaa|audit|127.0.0.1|HIVE|admin|ADMIN||identity-mapping|principal|ADMIN|success|Groups:
[]
```
1st provider disabled
```xml
<provider>
<role>identity-assertion</role>
<name>SwitchCase</name>
<enabled>false</enabled>
<param>
<name>principal.case</name>
<value>upper</value>
</param>
<param>
<name>group.principal.case</name>
<value>upper</value>
</param>
</provider>
```
2nd provider enabled:
```xml
<provider>
<role>identity-assertion</role>
<name>Regex</name>
<enabled>true</enabled>
<param>
<name>input</name>
<value>ad(.*)</value>
</param>
<param>
<name>output</name>
<value>{1}max</value>
</param>
</provider>
```
```bash
curl -vk -u admin:admin-password https://localhost:8443/gateway/sandbox/hive
24/01/09 14:06:26
||2d376454-b232-4011-85bd-cdbc526962e6|audit|127.0.0.1|HIVE|admin|minmax||identity-mapping|principal|admin|success|Effective
User: minmax
24/01/09 14:06:26
||2d376454-b232-4011-85bd-cdbc526962e6|audit|127.0.0.1|HIVE|admin|minmax||identity-mapping|principal|minmax|success|Groups:
[]
```
Issue Time Tracking
-------------------
Worklog Id: (was: 898684)
Remaining Estimate: 0h
Time Spent: 10m
> Having one disabled one enabled identity-assertion provider in knoxsso
> doesn't work
> -----------------------------------------------------------------------------------
>
> Key: KNOX-2982
> URL: https://issues.apache.org/jira/browse/KNOX-2982
> Project: Apache Knox
> Issue Type: Improvement
> Reporter: Attila Magyar
> Assignee: Attila Magyar
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> If one has two identity-assertion providers, e.g.: HadoopGroupProvider and
> Regexp, where the HadoopGroupProvider is disabled, then the Regex provider
> doesn't work.
> The workaround is to delete the HadoopGroupProvider altogether (instead of
> just disabling it).
> This is a bug in JerseyServiceDeploymentContributorBase>contributeService.
> The addIdentityAssertionFilter is called with null provider names.
> The same thing applies to addAuthenticationFilter, addAuthorizationFilter
> too.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)