private static int printCredentialCacheInfo()

in kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java [87:135]


    private static int printCredentialCacheInfo(KOptions klOptions) {
        CredentialCache cc = new CredentialCache();
        InputStream cis = null;
        String fileName;

        if (!klOptions.contains(KlistOption.CREDENTIALS_CACHE)) {
            fileName = getCcacheName(klOptions);
        } else {
            fileName = klOptions.getStringOption(KlistOption.CREDENTIALS_CACHE);
        }
        try {
            cis = Files.newInputStream(Paths.get(fileName));
            cc.load(cis);
        } catch (IOException e) {
            LOG.error("Failed to open CredentialCache from file: " + fileName + ". " + e.toString());
        } finally {
            try {
                if (cis != null) {
                    cis.close();
                }
            } catch (IOException e) {
                LOG.warn("Fail to close input stream. " + e);
            }
        }

        List<Credential> credentials = cc.getCredentials();

        System.out.println("Ticket cache: " + fileName);
        if (cc.getPrimaryPrincipal() != null) {
            System.out.println("Default principal: " + cc.getPrimaryPrincipal().getName());
        }

        if (credentials.isEmpty()) {
            System.out.println("No credential has been cached.");
        } else {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);

            System.out.println("Valid starting\t\tExpires\t\t\tService principal");

            for (Credential crd : credentials) {
                System.out.println(df.format(crd.getStartTime().getTime()) + "\t"
                    + df.format(crd.getEndTime().getTime()) + "\t"
                    + crd.getServerName() + "\n"
                    + "\t" + "renew until" + "\t" + df.format(crd.getRenewTill().getTime()));
            }
        }

        return 0;
    }