You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2019/01/03 12:33:20 UTC

directory-kerby git commit: Allow ApOption flags to be set for an ApRequest. This closes #32.

Repository: directory-kerby
Updated Branches:
  refs/heads/trunk 8a0f393dd -> 30e553284


Allow ApOption flags to be set for an ApRequest. This closes #32.


Project: http://git-wip-us.apache.org/repos/asf/directory-kerby/repo
Commit: http://git-wip-us.apache.org/repos/asf/directory-kerby/commit/30e55328
Tree: http://git-wip-us.apache.org/repos/asf/directory-kerby/tree/30e55328
Diff: http://git-wip-us.apache.org/repos/asf/directory-kerby/diff/30e55328

Branch: refs/heads/trunk
Commit: 30e553284dbab60089fa137297f41e4663c66498
Parents: 8a0f393
Author: David Walluck <dw...@redhat.com>
Authored: Fri Jul 27 10:37:42 2018 -0400
Committer: Colm O hEigeartaigh <co...@apache.org>
Committed: Thu Jan 3 12:27:59 2019 +0000

----------------------------------------------------------------------
 .../kerby/kerberos/kerb/request/ApRequest.java       | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/30e55328/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/ApRequest.java
----------------------------------------------------------------------
diff --git a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/ApRequest.java b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/ApRequest.java
index 44f5b47..563a5b3 100644
--- a/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/ApRequest.java
+++ b/kerby-kerb/kerb-common/src/main/java/org/apache/kerby/kerberos/kerb/request/ApRequest.java
@@ -37,6 +37,7 @@ import org.apache.kerby.kerberos.kerb.type.ticket.SgtTicket;
 import org.apache.kerby.kerberos.kerb.type.ticket.Ticket;
 
 import java.net.InetAddress;
+import java.util.EnumSet;
 
 /**
  * A wrapper for ApReq request
@@ -47,10 +48,16 @@ public class ApRequest {
     private PrincipalName clientPrincipal;
     private SgtTicket sgtTicket;
     private ApReq apReq;
+    private EnumSet<ApOption> flags;
 
     public ApRequest(PrincipalName clientPrincipal, SgtTicket sgtTicket) {
+        this(clientPrincipal, sgtTicket, EnumSet.of(ApOption.USE_SESSION_KEY));
+    }
+
+    public ApRequest(PrincipalName clientPrincipal, SgtTicket sgtTicket, EnumSet<ApOption> flags) {
         this.clientPrincipal = clientPrincipal;
         this.sgtTicket = sgtTicket;
+        this.flags = flags;
     }
 
     public ApReq getApReq() throws KrbException {
@@ -75,7 +82,9 @@ public class ApRequest {
         apReq.setAuthenticator(authenticator);
         apReq.setTicket(sgtTicket.getTicket());
         ApOptions apOptions = new ApOptions();
-        apOptions.setFlag(ApOption.USE_SESSION_KEY);
+        for (ApOption flag : flags) {
+            apOptions.setFlag(flag);
+        }
         apReq.setApOptions(apOptions);
 
         return apReq;
@@ -94,7 +103,9 @@ public class ApRequest {
         millis -= millis % 1000;
         authenticator.setCtime(new KerberosTime(millis));
         authenticator.setCusec(usec);
-        authenticator.setSubKey(sgtTicket.getSessionKey());
+        if (flags.contains(ApOption.USE_SESSION_KEY)) {
+            authenticator.setSubKey(sgtTicket.getSessionKey());
+        }
 
         return authenticator;
     }