Skip to content

Commit 4f65a70

Browse files
committed
Fix CookieJar storage
1 parent d994626 commit 4f65a70

4 files changed

Lines changed: 38 additions & 11 deletions

File tree

‎examples/pom.xml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<dependency>
2424
<groupId>com.github.vrchatapi</groupId>
2525
<artifactId>vrchatapi-java</artifactId>
26-
<version>1.0.1-globalcookie</version>
26+
<version>1.0.1-globalcookie2</version>
2727
</dependency>
2828
</dependencies>
2929
</project>

‎generate.sh‎

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
#!/bin/bash
22

3-
rm src/main docs -rf
3+
rm docs -rf
4+
rm src/main/java/io/github/vrchatapi/*.java
5+
rm src/main/java/io/github/vrchatapi/api -rf
6+
rm src/main/java/io/github/vrchatapi/auth -rf
7+
rm src/main/java/io/github/vrchatapi/model -rf
48
openapi-generator-cli generate \
59
-g java \
610
--additional-properties=groupId=io.github.vrchatapi,apiPackage=io.github.vrchatapi.api,invokerPackage=io.github.vrchatapi,modelPackage=io.github.vrchatapi.model,artifactId=vrchatapi,licenseName=MIT,licenseUrl=https://github.com/vrchatapi/vrchatapi-java/blob/main/LICENSE,developerEmail=me@ruby.js.org,developerName=VRChatAPI,developerOrganization=vrchatapi,developerOrganizationUrl=https://github.com/VRChatAPI,hideGenerationTimestamp=true \
@@ -10,13 +14,7 @@ openapi-generator-cli generate \
1014
-i https://vrchatapi.github.io/specification/openapi.yaml \
1115
--http-user-agent="vrchatapi-java"
1216

13-
sed -i '/<\/dependencies>/i \
14-
<!-- Custom VRChat API dependencies -->\
15-
<dependency>\
16-
<groupId>com.squareup.okhttp3</groupId>\
17-
<artifactId>okhttp-urlconnection</artifactId>\
18-
<version>${okhttp-version}</version>\
19-
</dependency>' pom.xml
17+
sed -i 's/java.version>1.7/java.version>1.8/g' pom.xml
2018

2119
sed -i '/addNetworkInterceptor/a \
22-
builder.cookieJar(new okhttp3.JavaNetCookieJar(new java.net.CookieManager()));' src/main/java/io/github/vrchatapi/ApiClient.java
20+
builder.cookieJar(new io.github.vrchatapi.util.SimpleOkHttpCookieJar());' src/main/java/io/github/vrchatapi/ApiClient.java

‎src/main/java/io/github/vrchatapi/ApiClient.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ private void initHttpClient() {
120120
private void initHttpClient(List<Interceptor> interceptors) {
121121
OkHttpClient.Builder builder = new OkHttpClient.Builder();
122122
builder.addNetworkInterceptor(getProgressInterceptor());
123-
builder.cookieJar(new okhttp3.JavaNetCookieJar(new java.net.CookieManager()));
123+
builder.cookieJar(new io.github.vrchatapi.util.SimpleOkHttpCookieJar());
124124
for (Interceptor interceptor: interceptors) {
125125
builder.addInterceptor(interceptor);
126126
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package io.github.vrchatapi.util;
2+
3+
import okhttp3.Cookie;
4+
import okhttp3.CookieJar;
5+
import okhttp3.HttpUrl;
6+
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
import java.util.stream.Collectors;
10+
11+
// https://gist.github.com/johannes-staehlin/63a72467bd1f21829d11bc55456c5836
12+
public class SimpleOkHttpCookieJar implements CookieJar {
13+
14+
private List<Cookie> storage = new ArrayList<>();
15+
16+
@Override
17+
public void saveFromResponse(HttpUrl url, List<Cookie> cookies) {
18+
storage.addAll(cookies);
19+
}
20+
21+
@Override
22+
public List<Cookie> loadForRequest(HttpUrl url) {
23+
// Remove expired Cookies
24+
storage.removeIf(cookie -> cookie.expiresAt() < System.currentTimeMillis());
25+
26+
// Only return matching Cookies
27+
return storage.stream().filter(cookie -> cookie.matches(url)).collect(Collectors.toList());
28+
}
29+
}

0 commit comments

Comments
 (0)