src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java
changeset 57487 643978a35f6e
parent 51398 3c389a284345
child 58331 e4ce29f6094e
equal deleted inserted replaced
57486:347804d623fc 57487:643978a35f6e
     1 /*
     1 /*
     2  * Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
    47  */
    47  */
    48 public class Credentials {
    48 public class Credentials {
    49 
    49 
    50     Ticket ticket;
    50     Ticket ticket;
    51     PrincipalName client;
    51     PrincipalName client;
       
    52     PrincipalName clientAlias;
    52     PrincipalName server;
    53     PrincipalName server;
       
    54     PrincipalName serverAlias;
    53     EncryptionKey key;
    55     EncryptionKey key;
    54     TicketFlags flags;
    56     TicketFlags flags;
    55     KerberosTime authTime;
    57     KerberosTime authTime;
    56     KerberosTime startTime;
    58     KerberosTime startTime;
    57     KerberosTime endTime;
    59     KerberosTime endTime;
    67     // Read native ticket with session key type in the given list
    69     // Read native ticket with session key type in the given list
    68     private static native Credentials acquireDefaultNativeCreds(int[] eTypes);
    70     private static native Credentials acquireDefaultNativeCreds(int[] eTypes);
    69 
    71 
    70     public Credentials(Ticket new_ticket,
    72     public Credentials(Ticket new_ticket,
    71                        PrincipalName new_client,
    73                        PrincipalName new_client,
       
    74                        PrincipalName new_client_alias,
    72                        PrincipalName new_server,
    75                        PrincipalName new_server,
       
    76                        PrincipalName new_server_alias,
    73                        EncryptionKey new_key,
    77                        EncryptionKey new_key,
    74                        TicketFlags new_flags,
    78                        TicketFlags new_flags,
    75                        KerberosTime authTime,
    79                        KerberosTime authTime,
    76                        KerberosTime new_startTime,
    80                        KerberosTime new_startTime,
    77                        KerberosTime new_endTime,
    81                        KerberosTime new_endTime,
    78                        KerberosTime renewTill,
    82                        KerberosTime renewTill,
    79                        HostAddresses cAddr,
    83                        HostAddresses cAddr,
    80                        AuthorizationData authzData) {
    84                        AuthorizationData authzData) {
    81         this(new_ticket, new_client, new_server, new_key, new_flags,
    85         this(new_ticket, new_client, new_client_alias, new_server,
    82                 authTime, new_startTime, new_endTime, renewTill, cAddr);
    86                 new_server_alias, new_key, new_flags, authTime,
       
    87                 new_startTime, new_endTime, renewTill, cAddr);
    83         this.authzData = authzData;
    88         this.authzData = authzData;
    84     }
    89     }
    85 
    90 
    86     public Credentials(Ticket new_ticket,
    91     public Credentials(Ticket new_ticket,
    87                        PrincipalName new_client,
    92                        PrincipalName new_client,
       
    93                        PrincipalName new_client_alias,
    88                        PrincipalName new_server,
    94                        PrincipalName new_server,
       
    95                        PrincipalName new_server_alias,
    89                        EncryptionKey new_key,
    96                        EncryptionKey new_key,
    90                        TicketFlags new_flags,
    97                        TicketFlags new_flags,
    91                        KerberosTime authTime,
    98                        KerberosTime authTime,
    92                        KerberosTime new_startTime,
    99                        KerberosTime new_startTime,
    93                        KerberosTime new_endTime,
   100                        KerberosTime new_endTime,
    94                        KerberosTime renewTill,
   101                        KerberosTime renewTill,
    95                        HostAddresses cAddr) {
   102                        HostAddresses cAddr) {
    96         ticket = new_ticket;
   103         ticket = new_ticket;
    97         client = new_client;
   104         client = new_client;
       
   105         clientAlias = new_client_alias;
    98         server = new_server;
   106         server = new_server;
       
   107         serverAlias = new_server_alias;
    99         key = new_key;
   108         key = new_key;
   100         flags = new_flags;
   109         flags = new_flags;
   101         this.authTime = authTime;
   110         this.authTime = authTime;
   102         startTime = new_startTime;
   111         startTime = new_startTime;
   103         endTime = new_endTime;
   112         endTime = new_endTime;
   105         this.cAddr = cAddr;
   114         this.cAddr = cAddr;
   106     }
   115     }
   107 
   116 
   108     public Credentials(byte[] encoding,
   117     public Credentials(byte[] encoding,
   109                        String client,
   118                        String client,
       
   119                        String clientAlias,
   110                        String server,
   120                        String server,
       
   121                        String serverAlias,
   111                        byte[] keyBytes,
   122                        byte[] keyBytes,
   112                        int keyType,
   123                        int keyType,
   113                        boolean[] flags,
   124                        boolean[] flags,
   114                        Date authTime,
   125                        Date authTime,
   115                        Date startTime,
   126                        Date startTime,
   116                        Date endTime,
   127                        Date endTime,
   117                        Date renewTill,
   128                        Date renewTill,
   118                        InetAddress[] cAddrs) throws KrbException, IOException {
   129                        InetAddress[] cAddrs) throws KrbException, IOException {
   119         this(new Ticket(encoding),
   130         this(new Ticket(encoding),
   120              new PrincipalName(client, PrincipalName.KRB_NT_PRINCIPAL),
   131              new PrincipalName(client, PrincipalName.KRB_NT_PRINCIPAL),
       
   132              (clientAlias == null? null : new PrincipalName(clientAlias,
       
   133                      PrincipalName.KRB_NT_PRINCIPAL)),
   121              new PrincipalName(server, PrincipalName.KRB_NT_SRV_INST),
   134              new PrincipalName(server, PrincipalName.KRB_NT_SRV_INST),
       
   135              (serverAlias == null? null : new PrincipalName(serverAlias,
       
   136                      PrincipalName.KRB_NT_SRV_INST)),
   122              new EncryptionKey(keyType, keyBytes),
   137              new EncryptionKey(keyType, keyBytes),
   123              (flags == null? null: new TicketFlags(flags)),
   138              (flags == null? null: new TicketFlags(flags)),
   124              (authTime == null? null: new KerberosTime(authTime)),
   139              (authTime == null? null: new KerberosTime(authTime)),
   125              (startTime == null? null: new KerberosTime(startTime)),
   140              (startTime == null? null: new KerberosTime(startTime)),
   126              (endTime == null? null: new KerberosTime(endTime)),
   141              (endTime == null? null: new KerberosTime(endTime)),
   141 
   156 
   142     public final PrincipalName getClient() {
   157     public final PrincipalName getClient() {
   143         return client;
   158         return client;
   144     }
   159     }
   145 
   160 
       
   161     public final PrincipalName getClientAlias() {
       
   162         return clientAlias;
       
   163     }
       
   164 
   146     public final PrincipalName getServer() {
   165     public final PrincipalName getServer() {
   147         return server;
   166         return server;
       
   167     }
       
   168 
       
   169     public final PrincipalName getServerAlias() {
       
   170         return serverAlias;
   148     }
   171     }
   149 
   172 
   150     public final EncryptionKey getSessionKey() {
   173     public final EncryptionKey getSessionKey() {
   151         return key;
   174         return key;
   152     }
   175     }
   260         options.set(KDCOptions.RENEWABLE, true);
   283         options.set(KDCOptions.RENEWABLE, true);
   261 
   284 
   262         return new KrbTgsReq(options,
   285         return new KrbTgsReq(options,
   263                              this,
   286                              this,
   264                              server,
   287                              server,
       
   288                              serverAlias,
   265                              null, // from
   289                              null, // from
   266                              null, // till
   290                              null, // till
   267                              null, // rtime
   291                              null, // rtime
   268                              null, // eTypes
   292                              null, // eTypes
   269                              cAddr,
   293                              cAddr,
   482      * Prints out debug info.
   506      * Prints out debug info.
   483      */
   507      */
   484     public static void printDebug(Credentials c) {
   508     public static void printDebug(Credentials c) {
   485         System.out.println(">>> DEBUG: ----Credentials----");
   509         System.out.println(">>> DEBUG: ----Credentials----");
   486         System.out.println("\tclient: " + c.client.toString());
   510         System.out.println("\tclient: " + c.client.toString());
       
   511         if (c.clientAlias != null)
       
   512             System.out.println("\tclient alias: " + c.clientAlias.toString());
   487         System.out.println("\tserver: " + c.server.toString());
   513         System.out.println("\tserver: " + c.server.toString());
       
   514         if (c.serverAlias != null)
       
   515             System.out.println("\tserver alias: " + c.serverAlias.toString());
   488         System.out.println("\tticket: sname: " + c.ticket.sname.toString());
   516         System.out.println("\tticket: sname: " + c.ticket.sname.toString());
   489         if (c.startTime != null) {
   517         if (c.startTime != null) {
   490             System.out.println("\tstartTime: " + c.startTime.getTime());
   518             System.out.println("\tstartTime: " + c.startTime.getTime());
   491         }
   519         }
   492         System.out.println("\tendTime: " + c.endTime.getTime());
   520         System.out.println("\tendTime: " + c.endTime.getTime());
   510     }
   538     }
   511 
   539 
   512     public String toString() {
   540     public String toString() {
   513         StringBuilder sb = new StringBuilder("Credentials:");
   541         StringBuilder sb = new StringBuilder("Credentials:");
   514         sb.append(    "\n      client=").append(client);
   542         sb.append(    "\n      client=").append(client);
       
   543         if (clientAlias != null)
       
   544             sb.append(    "\n      clientAlias=").append(clientAlias);
   515         sb.append(    "\n      server=").append(server);
   545         sb.append(    "\n      server=").append(server);
       
   546         if (serverAlias != null)
       
   547             sb.append(    "\n      serverAlias=").append(serverAlias);
   516         if (authTime != null) {
   548         if (authTime != null) {
   517             sb.append("\n    authTime=").append(authTime);
   549             sb.append("\n    authTime=").append(authTime);
   518         }
   550         }
   519         if (startTime != null) {
   551         if (startTime != null) {
   520             sb.append("\n   startTime=").append(startTime);
   552             sb.append("\n   startTime=").append(startTime);