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

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

                Author: ASF GitHub Bot
            Created on: 11/Sep/25 11:07
            Start Date: 11/Sep/25 11:07
    Worklog Time Spent: 10m 
      Work Description: smolnar82 commented on code in PR #1083:
URL: https://github.com/apache/knox/pull/1083#discussion_r2340209829


##########
gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java:
##########
@@ -562,8 +573,15 @@ public Response renew(String token) {
         errorCode = ErrorCode.INTERNAL_ERROR;
       }
     } else {
-      String renewer = SubjectUtils.getCurrentEffectivePrincipalName();
-      if (allowedRenewers.contains(renewer)) {
+      final String renewer = SubjectUtils.getCurrentEffectivePrincipalName();
+      final Set<GroupPrincipal> groups = 
SubjectUtils.getCurrentGroupPrincipals();
+
+      final boolean userAllowed = allowedRenewers.contains(renewer);

Review Comment:
   Good idea, I'll submit a new PS soon.





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

    Worklog Id:     (was: 982760)
    Time Spent: 40m  (was: 0.5h)

> Add group-based configuration parameter for KnoxToken renewer/revoker access 
> control
> ------------------------------------------------------------------------------------
>
>                 Key: KNOX-3188
>                 URL: https://issues.apache.org/jira/browse/KNOX-3188
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>    Affects Versions: 2.0.0, 1.6.0, 2.1.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Major
>             Fix For: 3.0.0
>
>          Time Spent: 40m
>  Remaining Estimate: 0h
>
> Currently, the {{knox.token.renewer.whitelist}} parameter allows 
> administrators to specify a comma-separated list of users who are authorized 
> to invoke KnoxToken renewal and revocation APIs. While this works for 
> individual users, it does not provide a convenient way to manage 
> authorization at the group level.
> In environments where user/group membership is centrally managed (e.g., via 
> LDAP, AD, or other identity providers), group-based access control is often 
> preferred to simplify configuration and ongoing maintenance. Without group 
> support, administrators must list each individual user explicitly, which 
> becomes cumbersome and error-prone, especially in larger deployments.
> {*}Proposal{*}:
> Introduce a new optional configuration parameter (e.g., 
> {{{}knox.token.renewer.group.whitelist{}}}) that accepts a comma-separated 
> list of groups. Any user belonging to one of the listed groups should be 
> authorized to renew or revoke tokens.
> {*}Example{*}:
> {code:java}
> knox.token.renewer.whitelist=alice,bob  
> knox.token.renewer.group.whitelist=admins,devops
> {code}
>  In the above example, both explicitly whitelisted users ({{{}alice{}}}, 
> {{{}bob{}}}) and any users belonging to the {{admins}} or {{devops}} groups 
> would be allowed to invoke the renewal/revocation APIs.
> {*}Benefits{*}:
>  * Simplifies administration by allowing group-based access control.
>  * Reduces the risk of configuration drift when onboarding or offboarding 
> users.
>  * Aligns KnoxToken access control with common enterprise practices for 
> authorization management.
> {*}Acceptance Criteria{*}:
>  * A new configuration parameter {{knox.token.renewer.group.whitelist}} is 
> recognized.
>  * Token renewal/revocation APIs check both user and group whitelists for 
> authorization.
>  * Backwards compatibility: existing behavior with 
> {{knox.token.renewer.whitelist}} remains unchanged if the group-based 
> parameter is not set.



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

Reply via email to