4 import org.apache.commons.io.FileUtils;
10 public class CookieWinCrome extends Cookie {
13 * Chrome から user_session を取得。エラーが起こった場合、例外を投げずに空文字を返す
15 * @return user_session
18 public String getUserSessionString() {
19 String user_session = "";
21 final String googleChrome = "\\Google\\Chrome\\User Data\\Default\\Cookies";
23 String local_Appdir = System.getenv("LOCALAPPDATA");
24 if (local_Appdir != null && !local_Appdir.isEmpty()) {
26 cookie_file = new File(local_Appdir + googleChrome);
27 if (cookie_file.isFile()) {
28 final String dataStr = FileUtils.readFileToString(cookie_file, "UTF-8");
29 user_session = CutUserSession(dataStr, cookie_file.getPath());
30 if (!user_session.isEmpty()) {
36 String profile_dir = System.getenv("USERPROFILE");
37 if (profile_dir != null && !profile_dir.isEmpty()) {
39 cookie_file = new File(profile_dir
40 + "\\Local Settings\\Application Data" + googleChrome);
41 if (cookie_file.isFile()) {
42 String dataStr = FileUtils.readFileToString(cookie_file, "UTF-8");
43 user_session = CutUserSession(dataStr, cookie_file.getPath());
47 String app_dir = System.getenv("APPDATA");
48 if (app_dir != null && !app_dir.isEmpty()) {
50 cookie_file = new File(app_dir + googleChrome);
51 if (cookie_file.isFile()) {
52 String dataStr = FileUtils.readFileToString(cookie_file, "UTF-8");
53 user_session = CutUserSession(dataStr, cookie_file.getPath());
58 } catch (Exception e) {
65 /// 文字列から user_session_ で始まる文字列を切り出して返す。数字とアンダーバー以外の文字で切れる。
67 /// <param name="str">切り出す対象文字列</param>
68 /// <returns>user_session 文字列。見つからなければ空文字を返す</returns>
69 private String CutUserSession(String str, String filename) {
71 int start = str.indexOf("user_session_");
73 int index = start + "user_session_".length();
74 while (index < str.length() && ('0' <= str.charAt(index) && str.charAt(index) <= '9'
75 || str.charAt(index) == '_')) {
78 ret = str.substring(start, index);
79 // C# の string.SubString( , ) と Java の String.substring( , ) は違うので注意!
80 if (!ret.isEmpty() && !filename.isEmpty()) {
81 System.out.println("Cookie found: " + filename);