From ca186cdd04dee3e8a0087b87f76748b9cb2a6302 Mon Sep 17 00:00:00 2001 From: Jonathan Christison Date: Fri, 7 Jul 2023 00:34:04 +0100 Subject: [PATCH] Set email based on requesting kerberos id for now --- .../java/com/redhat/pctsec/model/Scan.java | 4 +-- .../pctsec/rest/v1alpha1/ScanResource.java | 26 +++++++++++++++---- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/redhat/pctsec/model/Scan.java b/src/main/java/com/redhat/pctsec/model/Scan.java index 8c3d046..2398113 100644 --- a/src/main/java/com/redhat/pctsec/model/Scan.java +++ b/src/main/java/com/redhat/pctsec/model/Scan.java @@ -104,9 +104,7 @@ public class Scan { public String getEmail() { if(email != null) return email; - if(getRequestor() != null) - return getRequestor() + "@redhat.com"; - return email; + return getRequestor() + "@redhat.com"; } public void setEmail(String email) { diff --git a/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java b/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java index 60e38bc..f37b15c 100644 --- a/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java +++ b/src/main/java/com/redhat/pctsec/rest/v1alpha1/ScanResource.java @@ -5,6 +5,7 @@ import com.redhat.pctsec.model.api.request.pssaas; import com.redhat.pctsec.model.api.request.scanChain; import com.redhat.pctsec.model.jpa.ScanRepository; import io.quarkus.security.Authenticated; +import io.quarkus.security.identity.SecurityIdentity; import io.vertx.mutiny.core.eventbus.EventBus; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -30,6 +31,10 @@ public class ScanResource { @Inject EventBus bus; + @Inject + SecurityIdentity identity; + + @POST @Path("PSSaaS") @Consumes({ "application/json" }) @@ -39,9 +44,12 @@ public class ScanResource { { ScanRequests scanRequests = new ScanRequests(scanRequest); Scan s = new Scan(); - s.setRequestor("cpaas"); s.setProductName(scanRequest.productId); s.setScanRequests(scanRequests); + if(!identity.getPrincipal().getName().isEmpty()) + s.setRequestor(identity.getPrincipal().getName()); + else + s.setRequestor("CPaaS"); sr.persist(s); return s; } @@ -65,9 +73,14 @@ public class ScanResource { { ScanRequests scanRequests = new ScanRequests(scanRequest); Scan s = new Scan(); + //Set the requestor to kerberos uid first + if(!identity.getPrincipal().getName().isEmpty()) + s.setRequestor(identity.getPrincipal().getName()); + //Set the email to be our kerberos id + @redhat.com + s.setEmail(s.getEmail()); + //Now set the actual payload requestor s.setRequestor(scanRequest.requestor); s.setProductName(scanRequest.productName); - s.setScanRequests(scanRequests); sr.persist(s); return s; } @@ -129,7 +142,8 @@ public class ScanResource { public Scan singleGit(@RestQuery String repo, @RestQuery String ref) { Scan s = new Scan(); - s.setRequestor("jochrist"); + if(!identity.getPrincipal().getName().isEmpty()) + s.setRequestor(identity.getPrincipal().getName()); s.getScanRequests().addGit(repo,ref); sr.persist(s); return s; @@ -143,7 +157,8 @@ public class ScanResource { public Scan singleGit(@RestQuery String brewId) { Scan s = new Scan(); - s.setRequestor("jochrist"); + if(!identity.getPrincipal().getName().isEmpty()) + s.setRequestor(identity.getPrincipal().getName()); s.getScanRequests().addBrewBuild(brewId); sr.persist(s); return s; @@ -156,7 +171,8 @@ public class ScanResource { public Scan singlePNC(@RestQuery String pncId) { Scan s = new Scan(); - s.setRequestor("jochrist"); + if(!identity.getPrincipal().getName().isEmpty()) + s.setRequestor(identity.getPrincipal().getName()); s.getScanRequests().addPNCBuild(pncId); sr.persist(s); return s;