。現在のFirefox 11で動作します
List<Map<String, String>> getCookies() throws Exception
{
String appdata = System.getenv("APPDATA");
File fappdata = new File(appdata);
Path firefox = fappdata.toPath().resolve("Mozilla").resolve("Firefox");
File profilesini = firefox.resolve("profiles.ini").toFile();
Ini ini = new Ini(profilesini);
//TODO:Detect more profiles than just assume default profile configuration
Ini.Section section = ini.get("Profile0");
String profiledir = section.get("Path");
File cookiesfile = firefox.resolve(profiledir).resolve("cookies.sqlite").toFile();
String cookiesAdress = cookiesfile.getAbsolutePath();
Class.forName("SQLite.JDBCDriver");
Connection conn = DriverManager.getConnection("jdbc:sqlite:/"+cookiesAdress);
Statement sta = conn.createStatement();
String query = "select * from moz_cookies";
ResultSet rs = sta.executeQuery(query);
List<Map<String, String>> result = new ArrayList<>();
while(rs.next())
{
Map<String, String> store = new HashMap<>();
store.put("id", String.valueOf(rs.getInt("moz_cookies.id")));
store.put("baseDomain", rs.getString("moz_cookies.baseDomain"));
store.put("name", rs.getString("moz_cookies.name"));
store.put("value", rs.getString("moz_cookies.value"));
store.put("host", rs.getString("moz_cookies.host"));
store.put("path", rs.getString("moz_cookies.path"));
store.put("expiry", String.valueOf(rs.getInt("moz_cookies.expiry")));
store.put("lastAccessed", String.valueOf(rs.getInt("moz_cookies.lastAccessed")));
store.put("creationTime", String.valueOf(rs.getInt("moz_cookies.creationTime")));
store.put("isSecure", String.valueOf(rs.getInt("moz_cookies.isSecure")));
store.put("isHttpOnly", String.valueOf(rs.getInt("moz_cookies.isHttpOnly")));
result.add(store);
}
rs.close();
sta.close();
conn.close();
return result;
}
みんな私の自家製スクラッパーにこのコードを使用します。 Firefoxのクッキーで悪をしないでください。そうしないと、Mozillaの人たちがそれらを暗号化し、私たちはそれらと面白く無害なことをすることもできなくなります。
+1興味深いプロジェクトのようなサウンドです。 –