src/java.security.jgss/share/classes/sun/security/krb5/internal/ccache/CredentialsCache.java
changeset 58611 53ddf218eddd
parent 47216 71c04702a3d5
equal deleted inserted replaced
58610:94710bb2a5bb 58611:53ddf218eddd
    30 
    30 
    31 package sun.security.krb5.internal.ccache;
    31 package sun.security.krb5.internal.ccache;
    32 
    32 
    33 import sun.security.krb5.*;
    33 import sun.security.krb5.*;
    34 import sun.security.krb5.internal.*;
    34 import sun.security.krb5.internal.*;
    35 import java.util.StringTokenizer;
    35 
    36 import java.util.Vector;
    36 import java.util.List;
    37 import java.io.IOException;
    37 import java.io.IOException;
    38 import java.io.File;
       
    39 import java.io.FileInputStream;
       
    40 import java.io.FileOutputStream;
       
    41 import java.io.BufferedReader;
       
    42 import java.io.InputStreamReader;
       
    43 
    38 
    44 /**
    39 /**
    45  * CredentialsCache stores credentials(tickets, session keys, etc) in a semi-permanent store
    40  * CredentialsCache stores credentials(tickets, session keys, etc) in a semi-permanent store
    46  * for later use by different program.
    41  * for later use by different program.
    47  *
    42  *
   118     public abstract PrincipalName getPrimaryPrincipal();
   113     public abstract PrincipalName getPrimaryPrincipal();
   119     public abstract void update(Credentials c);
   114     public abstract void update(Credentials c);
   120     public abstract void save() throws IOException, KrbException;
   115     public abstract void save() throws IOException, KrbException;
   121     public abstract Credentials[] getCredsList();
   116     public abstract Credentials[] getCredsList();
   122     public abstract Credentials getDefaultCreds();
   117     public abstract Credentials getDefaultCreds();
       
   118     public abstract sun.security.krb5.Credentials getInitialCreds();
   123     public abstract Credentials getCreds(PrincipalName sname);
   119     public abstract Credentials getCreds(PrincipalName sname);
   124     public abstract Credentials getCreds(LoginOptions options, PrincipalName sname);
   120     public abstract Credentials getCreds(LoginOptions options, PrincipalName sname);
       
   121     public abstract void addConfigEntry(ConfigEntry e);
       
   122     public abstract List<ConfigEntry> getConfigEntries();
       
   123 
       
   124     public ConfigEntry getConfigEntry(String name) {
       
   125         List<ConfigEntry> entries = getConfigEntries();
       
   126         if (entries != null) {
       
   127             for (ConfigEntry e : entries) {
       
   128                 if (e.getName().equals(name)) {
       
   129                     return e;
       
   130                 }
       
   131             }
       
   132         }
       
   133         return null;
       
   134     }
       
   135 
       
   136     public static class ConfigEntry {
       
   137 
       
   138         public ConfigEntry(String name, PrincipalName princ, byte[] data) {
       
   139             this.name = name;
       
   140             this.princ = princ;
       
   141             this.data = data;
       
   142         }
       
   143 
       
   144         private final String name;
       
   145         private final PrincipalName princ;
       
   146         private final byte[] data; // not worth cloning
       
   147 
       
   148         public String getName() {
       
   149             return name;
       
   150         }
       
   151 
       
   152         public PrincipalName getPrinc() {
       
   153             return princ;
       
   154         }
       
   155 
       
   156         public byte[] getData() {
       
   157             return data;
       
   158         }
       
   159 
       
   160         @Override
       
   161         public String toString() {
       
   162             return name + (princ != null ? ("." + princ) : "")
       
   163                     + ": " + new String(data);
       
   164         }
       
   165 
       
   166         public PrincipalName getSName() {
       
   167             try {
       
   168                 return new PrincipalName("krb5_ccache_conf_data/" + name
       
   169                         + (princ != null ? ("/" + princ) : "")
       
   170                         + "@X-CACHECONF:");
       
   171             } catch (RealmException e) {
       
   172                 throw new AssertionError(e);
       
   173             }
       
   174         }
       
   175     }
   125 }
   176 }