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

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

                Author: ASF GitHub Bot
            Created on: 20/Apr/22 10:50
            Start Date: 20/Apr/22 10:50
    Worklog Time Spent: 10m 
      Work Description: moresandeep commented on code in PR #560:
URL: https://github.com/apache/knox/pull/560#discussion_r853988760


##########
gateway-provider-security-jwt/src/main/java/org/apache/knox/gateway/provider/federation/jwt/filter/JWTAccessTokenAssertionFilter.java:
##########
@@ -68,6 +70,10 @@ public void init( FilterConfig filterConfig ) throws 
ServletException {
     GatewayServices services = (GatewayServices) 
filterConfig.getServletContext().getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE);
     authority = services.getService(ServiceType.TOKEN_SERVICE);
     sr = services.getService(ServiceType.SERVICE_REGISTRY_SERVICE);
+
+    this.tokenIssuer = 
filterConfig.getInitParameter(JWTAccessTokenAssertionFilter.ISSUER) != null

Review Comment:
   We should check for a blank string too.



##########
gateway-provider-security-jwt/src/main/java/org/apache/knox/gateway/provider/federation/jwt/filter/JWTAccessTokenAssertionFilter.java:
##########
@@ -141,7 +147,13 @@ private String getAccessToken(final String principalName, 
String serviceName, lo
 
     JWT token;
     try {
-      final JWTokenAttributes jwtAttributes = new 
JWTokenAttributesBuilder().setUserName(principalName).setAudiences(serviceName).setAlgorithm(signatureAlgorithm).setExpires(expires).build();
+      final JWTokenAttributes jwtAttributes = new JWTokenAttributesBuilder()

Review Comment:
   Thanks :)



##########
gateway-provider-security-jwt/src/main/java/org/apache/knox/gateway/provider/federation/jwt/filter/JWTAuthCodeAssertionFilter.java:
##########
@@ -55,6 +57,10 @@ public void init( FilterConfig filterConfig ) throws 
ServletException {
     GatewayServices services = (GatewayServices) 
filterConfig.getServletContext().getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE);
     authority = services.getService(ServiceType.TOKEN_SERVICE);
     sr = services.getService(ServiceType.SERVICE_REGISTRY_SERVICE);
+
+    this.tokenIssuer = 
filterConfig.getInitParameter(JWTAccessTokenAssertionFilter.ISSUER) != null
+            ? 
filterConfig.getInitParameter(JWTAccessTokenAssertionFilter.ISSUER)

Review Comment:
   As per RFC https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1 
issuer is a `principal` and not principals but could there be cases where we 
might need to support multiple issuers? if not we are golden. Just wanted to 
raise this. 



##########
gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java:
##########
@@ -242,6 +243,9 @@ public void init() throws AliasServiceException, 
ServiceLifecycleException, KeyL
             ? true
             : Boolean.parseBoolean(includeGroupsInTokenAllowedParam);
 
+    this.tokenIssuer = context.getInitParameter(KNOX_TOKEN_ISSUER) != null

Review Comment:
   Check for blank string.



##########
gateway-provider-security-jwt/src/main/java/org/apache/knox/gateway/provider/federation/jwt/filter/JWTAuthCodeAssertionFilter.java:
##########
@@ -42,6 +43,7 @@ public class JWTAuthCodeAssertionFilter extends 
AbstractIdentityAssertionFilter
   private JWTokenAuthority authority;
 
   private ServiceRegistry sr;
+  private String tokenIssuer;
 
   @Override
   public void init( FilterConfig filterConfig ) throws ServletException {

Review Comment:
   Not related to this change but we have some code duplication here with 
`JWTAccessTokenAssertionFilter` We can prolly combine it into a common base 
class. Not required here but would be nice. 



##########
gateway-provider-security-jwt/src/main/java/org/apache/knox/gateway/provider/federation/jwt/filter/JWTAuthCodeAssertionFilter.java:
##########
@@ -55,6 +57,10 @@ public void init( FilterConfig filterConfig ) throws 
ServletException {
     GatewayServices services = (GatewayServices) 
filterConfig.getServletContext().getAttribute(GatewayServices.GATEWAY_SERVICES_ATTRIBUTE);
     authority = services.getService(ServiceType.TOKEN_SERVICE);
     sr = services.getService(ServiceType.SERVICE_REGISTRY_SERVICE);
+
+    this.tokenIssuer = 
filterConfig.getInitParameter(JWTAccessTokenAssertionFilter.ISSUER) != null

Review Comment:
   We should check for blank string.





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

    Worklog Id:     (was: 759113)
    Time Spent: 20m  (was: 10m)

> Issuer claim in Knox JWTs should be configurable
> ------------------------------------------------
>
>                 Key: KNOX-2732
>                 URL: https://issues.apache.org/jira/browse/KNOX-2732
>             Project: Apache Knox
>          Issue Type: Improvement
>          Components: Server
>    Affects Versions: 1.6.0
>            Reporter: Philip Zampino
>            Assignee: Attila Magyar
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, the issuer claim in JWTs issued by Knox is always "KNOXSSO". This 
> value should be configurable via a KNOXTOKEN service param in the topology.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to