OSDN Git Service

リファクタリング
authoryukihane <yukihane.feather@gmail.com>
Sat, 17 Sep 2011 06:20:34 +0000 (15:20 +0900)
committeryukihane <yukihane.feather@gmail.com>
Sat, 17 Sep 2011 06:20:34 +0000 (15:20 +0900)
frontend/src/saccubus/net/CookieWinFirefox4.java

index 211e9a9..17ba055 100644 (file)
@@ -2,8 +2,8 @@ package saccubus.net;
 
 import java.io.File;
 import java.io.IOException;
-import java.nio.file.Path;
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
 
 /**
  *
@@ -11,36 +11,29 @@ import org.apache.commons.io.FileUtils;
  */
 public class CookieWinFirefox4 extends Cookie {
 
-    /// <summary>
-    /// Firefox4, 5 から user_session を取得。エラーが起こった場合、例外を投げずに空文字を返す
-    /// </summary>
-    /// <returns>user_session</returns>
+    /**
+     * Firefox4以降から user_session を取得。
+     * @return ユーザセッション文字列.
+     * @throws IOException 取得失敗.
+     */
     @Override
     public String getUserSessionString() throws IOException {
-        String user_session = "";
-        try {
-            String app_dir = System.getenv("APPDATA");
-            if (app_dir == null || app_dir.isEmpty()) {
-                return "";
-            }
-            File dir = new File(app_dir + "\\Mozilla\\Firefox\\Profiles\\");
-            File[] userLists = dir.listFiles();
-            for (File user_dir : userLists) {
-                File sqlist_filename = new File(user_dir, "cookies.sqlite");
-                if (sqlist_filename.isFile()) {
-                    String dataStr = FileUtils.readFileToString(sqlist_filename, "US-ASCII");
-                    user_session = cutUserSession(dataStr);
-                    if (!user_session.isEmpty()) {
+        final String appData = System.getenv("APPDATA");
+        if (StringUtils.isNotEmpty(appData)) {
+            final File dir = new File(appData + "\\Mozilla\\Firefox\\Profiles\\");
+            final File[] userLists = dir.listFiles();
+            for (File profileDir : userLists) {
+                final File sqliteFile = new File(profileDir, "cookies.sqlite");
+                if (sqliteFile.isFile()) {
+                    String dataStr = FileUtils.readFileToString(sqliteFile, "US-ASCII");
+                    final String user_session = cutUserSession(dataStr);
+                    if (StringUtils.isNotEmpty(user_session)) {
                         return user_session;
                     }
                     // else continue
                 }
             }
-            return ""; // not found
-        } catch (Exception e) {
-            e.printStackTrace();
-            return "";
         }
-
+        throw new IOException("user session not found in firefox cookie");
     }
 }