From 05435626cca55506c7e8d39a3add429d77ae3eb8 Mon Sep 17 00:00:00 2001 From: yukihane Date: Sat, 17 Sep 2011 16:54:34 +0900 Subject: [PATCH] =?utf8?q?=E3=83=AA=E3=83=95=E3=82=A1=E3=82=AF=E3=82=BF?= =?utf8?q?=E3=83=AA=E3=83=B3=E3=82=B0.=20=E5=85=B1=E9=80=9A=E3=83=A1?= =?utf8?q?=E3=82=BD=E3=83=83=E3=83=89=E3=81=AE=E3=83=97=E3=83=AB=E3=82=A2?= =?utf8?q?=E3=83=83=E3=83=97.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- frontend/src/saccubus/net/Cookie.java | 30 +++++++++++++++++++++++++++- frontend/src/saccubus/net/CookieWinMsIe.java | 24 +--------------------- 2 files changed, 30 insertions(+), 24 deletions(-) diff --git a/frontend/src/saccubus/net/Cookie.java b/frontend/src/saccubus/net/Cookie.java index 96a4d38..03fc962 100644 --- a/frontend/src/saccubus/net/Cookie.java +++ b/frontend/src/saccubus/net/Cookie.java @@ -1,8 +1,12 @@ package saccubus.net; +import java.io.File; import java.io.IOException; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.io.FileUtils; +import org.apache.commons.lang.StringUtils; /** * @@ -38,11 +42,35 @@ public abstract class Cookie { * @param str 切り出す対象文字列 * @return user_session 文字列。見つからなければnull。 */ - protected String cutUserSession(String str) { + protected final String cutUserSession(String str) { final Matcher mather = USER_SESSION_PATTERN.matcher(str); if (mather.lookingAt()) { return mather.group(1); } return null; } + + /** + * cookieDirs ディレクトリからクッキーを見つけて user_session を返す + * @param cookieDirs cookie保存ディレクトリの候補. + * @return ユーザセッション文字列. 無ければnull. + */ + protected final String getUserSessionFromDir(List cookieDirs, String charsetName) throws IOException { + for (File dir : cookieDirs) { + if (dir.isDirectory()) { + File[] files = dir.listFiles(); + for (File cookieFile : files) { + if (cookieFile.isFile()) { + final String cookie = FileUtils.readFileToString(cookieFile, charsetName); + final String userSession = cutUserSession(cookie); + if (StringUtils.isNotEmpty(userSession)) { + return userSession; + } + } + } + } + } + + return null; + } } diff --git a/frontend/src/saccubus/net/CookieWinMsIe.java b/frontend/src/saccubus/net/CookieWinMsIe.java index 9f37697..ea147ed 100644 --- a/frontend/src/saccubus/net/CookieWinMsIe.java +++ b/frontend/src/saccubus/net/CookieWinMsIe.java @@ -34,28 +34,6 @@ public class CookieWinMsIe extends Cookie { // これは何だ? searchDirs.add(new File(userProfile + "\\Cookies\\")); - return getUserSession(searchDirs); - } - - /** - * dir_name ディレクトリから MSIE のクッキーを見つけて user_session を返す - * @param cookieDirs cookie保存ディレクトリの候補. - * @return ユーザセッション文字列. 無ければnull. - */ - private String getUserSession(List cookieDirs) throws IOException { - for (File dir : cookieDirs) { - if (dir.isDirectory()) { - File[] files = dir.listFiles(); - for (File fullname : files) { - final String cookie = FileUtils.readFileToString(fullname, "MS932"); - final String userSession = cutUserSession(cookie); - if (StringUtils.isNotEmpty(userSession)) { - return userSession; - } - } - } - } - - throw new IOException(); + return getUserSessionFromDir(searchDirs, "MS932"); } } -- 2.11.0