You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pl...@apache.org on 2015/07/30 08:24:30 UTC

[23/50] [abbrv] directory-kerby git commit: DIRKRB-368 Fix findbugs Problems for kerby-tool module. Contributed by Yaning

DIRKRB-368 Fix findbugs Problems for kerby-tool module. Contributed by Yaning


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

Branch: refs/heads/pkinit-support
Commit: b2bf00d40e3004b13ee06e718af90e99426449e8
Parents: a6afb9a
Author: Lin <li...@foxmail.com>
Authored: Sun Jul 19 00:20:48 2015 +0800
Committer: Lin <li...@foxmail.com>
Committed: Sun Jul 19 00:20:48 2015 +0800

----------------------------------------------------------------------
 .../kerby/kerberos/tool/kinit/KinitTool.java    |  3 +-
 .../kerby/kerberos/tool/klist/KlistTool.java    |  8 ++++++
 .../kerby/kerberos/tool/token/TokenCache.java   | 30 ++++++++++++++------
 .../kerby/kerberos/tool/kadmin/KadminTool.java  |  6 ++--
 .../kerby/kerberos/tool/kadmin/ToolUtil.java    |  2 +-
 .../kadmin/command/AddPrincipalCommand.java     |  2 +-
 .../kadmin/command/ChangePasswordCommand.java   |  2 +-
 .../kadmin/command/DeletePrincipalCommand.java  |  2 +-
 .../kadmin/command/ListPrincipalCommand.java    | 13 ++++-----
 .../kadmin/command/ModifyPrincipalCommand.java  |  2 ++
 10 files changed, 45 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitTool.java
----------------------------------------------------------------------
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitTool.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitTool.java
index c512296..932ed94 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitTool.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/kinit/KinitTool.java
@@ -88,7 +88,7 @@ public class KinitTool {
                     + "maybe you're running this from within an IDE. "
                     + "Use scanner to read password.");
             System.out.println("Password for " + principal + ":");
-            try (Scanner scanner = new Scanner(System.in)) {
+            try (Scanner scanner = new Scanner(System.in, "UTF-8")) {
                 return scanner.nextLine().trim();
             }
         }
@@ -159,6 +159,7 @@ public class KinitTool {
                 kto = KinitOption.fromName(opt);
                 if (kto == KinitOption.NONE) {
                     error = "Invalid option:" + opt;
+                    System.err.println(error);
                     break;
                 }
             } else {

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
----------------------------------------------------------------------
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
index 9359450..14d8a12 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
@@ -90,6 +90,14 @@ public class KlistTool {
             } catch (IOException e) {
                 System.err.println("Failed to open CredentialCache from file: " + fileName);
                 e.printStackTrace();
+            } finally {
+                try {
+                    if (cis != null) {
+                        cis.close();
+                    }
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
             }
 
         }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/token/TokenCache.java
----------------------------------------------------------------------
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/token/TokenCache.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/token/TokenCache.java
index e88085b..1235b8f 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/token/TokenCache.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/token/TokenCache.java
@@ -20,19 +20,23 @@
 package org.apache.kerby.kerberos.tool.token;
 
 
+import org.apache.commons.io.output.FileWriterWithEncoding;
+import org.apache.kerby.kerberos.kerb.KrbException;
+
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
-import java.io.FileWriter;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.io.Writer;
+import java.nio.charset.Charset;
 
 public class TokenCache {
     private static final String DEFAULT_TOKEN_CACHE_PATH = ".tokenauth";
     private static final String TOKEN_CACHE_FILE = ".tokenauth.token";
 
     public static String readToken(String tokenCacheFile) {
-        File cacheFile = null;
+        File cacheFile;
 
         if (tokenCacheFile != null && !tokenCacheFile.isEmpty()) {
             cacheFile = new File(tokenCacheFile);
@@ -48,14 +52,15 @@ public class TokenCache {
 
         String token = null;
         try {
-            BufferedReader reader = new BufferedReader(new FileReader(cacheFile));
+            BufferedReader reader = new BufferedReader(
+                    new InputStreamReader(new FileInputStream(cacheFile), Charset.forName("UTF-8")));
             String line = reader.readLine();
             reader.close();
             if (line != null) {
                 token = line;
             }
         } catch (IOException ex) { //NOPMD
-            System.out.println(ex);
+            ex.printStackTrace();
         }
 
         return token;
@@ -65,18 +70,25 @@ public class TokenCache {
         File cacheFile = getDefaultTokenCache();
 
         try {
-            Writer writer = new FileWriter(cacheFile);
-            writer.write(token.toString());
+            Writer writer = new FileWriterWithEncoding(cacheFile, Charset.forName("UTF-8"));
+            writer.write(token);
+            writer.flush();
             writer.close();
             // sets read-write permissions to owner only
             cacheFile.setReadable(false, false);
             cacheFile.setReadable(true, true);
-            cacheFile.setWritable(true, true);
+            if (!cacheFile.setWritable(true, true)) {
+                throw new KrbException("Cache file is not readable.");
+            }
         } catch (IOException ioe) {
             // if case of any error we just delete the cache, if user-only
             // write permissions are not properly set a security exception
             // is thrown and the file will be deleted.
-            cacheFile.delete();
+            if (cacheFile.delete()) {
+                System.err.println("Cache file is deleted.");
+            }
+        } catch (KrbException e) {
+            e.printStackTrace();
         }
     }
 

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/KadminTool.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/KadminTool.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/KadminTool.java
index 5c85e0f..63ec1b3 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/KadminTool.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/KadminTool.java
@@ -156,11 +156,11 @@ public class KadminTool {
 
         System.out.print(PROMPT + ": ");
 
-        try (Scanner scanner = new Scanner(System.in)) {
+        try (Scanner scanner = new Scanner(System.in, "UTF-8")) {
             String input = scanner.nextLine();
 
-            boolean quit = input.equals("quit") || input.equals("exit") || input.equals("q");
-            while (!quit) {
+            while (!(input.equals("quit") || input.equals("exit")
+                    || input.equals("q"))) {
                 execute(kadmin, input);
                 System.out.print(PROMPT + ": ");
                 input = scanner.nextLine();

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java
index 27668f3..943fdfc 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/ToolUtil.java
@@ -77,7 +77,7 @@ public class ToolUtil {
     }
 
     public static String getReplay(String prompt) {
-        Scanner scanner = new Scanner(System.in);
+        Scanner scanner = new Scanner(System.in, "UTF-8");
         System.out.println(prompt);
         return scanner.nextLine().trim();
     }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/AddPrincipalCommand.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/AddPrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/AddPrincipalCommand.java
index 7c3aa6a..6814d2d 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/AddPrincipalCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/AddPrincipalCommand.java
@@ -102,7 +102,7 @@ public class AddPrincipalCommand extends KadminCommand {
             System.out.println("Couldn't get Console instance, "
                     + "maybe you're running this from within an IDE. "
                     + "Use scanner to read password.");
-            Scanner scanner = new Scanner(System.in);
+            Scanner scanner = new Scanner(System.in, "UTF-8");
             passwordOnce = getPassword(scanner,
                     "Enter password for principal \"" + principal + "\":");
             passwordTwice = getPassword(scanner,

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ChangePasswordCommand.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ChangePasswordCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ChangePasswordCommand.java
index 25a7c41..e271ca8 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ChangePasswordCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ChangePasswordCommand.java
@@ -98,7 +98,7 @@ public class ChangePasswordCommand extends KadminCommand {
             System.out.println("Couldn't get Console instance, "
                     + "maybe you're running this from within an IDE. "
                     + "Use scanner to read password.");
-            Scanner scanner = new Scanner(System.in);
+            Scanner scanner = new Scanner(System.in, "UTF-8");
             passwordOnce = getPassword(scanner,
                     "Please enter new password  \"" + principal + "\":");
             passwordTwice = getPassword(scanner,

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/DeletePrincipalCommand.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/DeletePrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/DeletePrincipalCommand.java
index 77d8126..af2c0e2 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/DeletePrincipalCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/DeletePrincipalCommand.java
@@ -59,7 +59,7 @@ public class DeletePrincipalCommand extends KadminCommand {
                 System.out.println("Couldn't get Console instance, "
                         + "maybe you're running this from within an IDE. "
                         + "Use scanner to read password.");
-                Scanner scanner = new Scanner(System.in);
+                Scanner scanner = new Scanner(System.in, "UTF-8");
                 reply = getReply(scanner, prompt);
             } else {
                 reply = getReply(console, prompt);

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ListPrincipalCommand.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ListPrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ListPrincipalCommand.java
index 46390de..aa72ff1 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ListPrincipalCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ListPrincipalCommand.java
@@ -33,20 +33,17 @@ public class ListPrincipalCommand extends KadminCommand {
     @Override
     public void execute(String input) {
         String[] commands = input.split(" ");
-        List<String> principalNames = null;
-
 
         if (commands.length == 1) {
             try {
-                principalNames = getKadmin().getPrincipals();
+                List<String> principalNames = getKadmin().getPrincipals();
+                System.out.println("Principals are listed:");
+                for (String principalName : principalNames) {
+                    System.out.println(principalName);
+                }
             } catch (KrbException e) {
                 System.err.print("Fail to list principal!" + e.getMessage());
             }
         }
-        System.out.println("Principals are listed:");
-
-        for (String principalName : principalNames) {
-            System.out.println(principalName);
-        }
     }
 }

http://git-wip-us.apache.org/repos/asf/directory-kerby/blob/b2bf00d4/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ModifyPrincipalCommand.java
----------------------------------------------------------------------
diff --git a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ModifyPrincipalCommand.java b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ModifyPrincipalCommand.java
index 9dbf4a6..63415ab 100644
--- a/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ModifyPrincipalCommand.java
+++ b/kerby-tool/kdc-tool/src/main/java/org/apache/kerby/kerberos/tool/kadmin/command/ModifyPrincipalCommand.java
@@ -41,6 +41,7 @@ public class ModifyPrincipalCommand extends KadminCommand {
 
     public ModifyPrincipalCommand(Kadmin kadmin) {
         super(kadmin);
+        this.kOptions = new KOptions();
     }
 
     @Override
@@ -71,6 +72,7 @@ public class ModifyPrincipalCommand extends KadminCommand {
                 kOption = KadminOption.fromName(opt);
                 if (kOption == KadminOption.NONE) {
                     error = "Invalid option:" + opt;
+                    System.err.println(error);
                     break;
                 }
             } else {