X-Git-Url: http://git.sourceforge.jp/view?p=coroid%2Finqubus.git;a=blobdiff_plain;f=frontend%2Fsrc%2Fsaccubus%2Fnet%2FCookie.java;h=03fc9629878dd051a902c70b8583f014a7e0ae2e;hp=96a4d383c263255491d472ba9f7bf77953783c99;hb=05435626cca55506c7e8d39a3add429d77ae3eb8;hpb=2d2010d37e7f1a0838ec1bca5de2229cd686837a 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; + } }