Skip to content

Commit 68d2226

Browse files
committed
2 parents 217603e + a898459 commit 68d2226

File tree

18 files changed

+163
-36
lines changed

18 files changed

+163
-36
lines changed

src/AndroidClient/android/android.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module external.linked.project.id=":android" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="net.servicestack" external.system.module.version="1.0.22" type="JAVA_MODULE" version="4">
2+
<module external.linked.project.id=":android" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="net.servicestack" external.system.module.version="1.0.23" type="JAVA_MODULE" version="4">
33
<component name="FacetManager">
44
<facet type="android-gradle" name="Android-Gradle">
55
<configuration>

src/AndroidClient/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
22
apply plugin: 'com.github.dcendents.android-maven'
33
apply plugin: 'com.jfrog.bintray'
44

5-
version = "1.0.23"
5+
version = "1.0.24"
66

77
android {
88
compileSdkVersion 23

src/AndroidClient/android/src/main/java/net/servicestack/client/ApiMember.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,9 @@
5656
/// Gets or sets route to which applies attribute, matches using StartsWith. By default applies to all routes.
5757
/// </summary>
5858
public String Route() default "";
59+
60+
/// <summary>
61+
/// Whether to exclude this property from being included in the ModelSchema
62+
/// </summary>
63+
public boolean ExcludeInSchema() default false;
5964
}

src/AndroidClient/android/src/main/java/net/servicestack/client/JsonServiceClient.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
import com.google.gson.Gson;
77
import com.google.gson.GsonBuilder;
8-
import com.google.gson.JsonArray;
98
import com.google.gson.JsonElement;
109
import com.google.gson.JsonObject;
1110

@@ -16,15 +15,14 @@
1615
import java.io.InputStreamReader;
1716
import java.io.UnsupportedEncodingException;
1817
import java.lang.reflect.Field;
19-
import java.lang.reflect.Modifier;
2018
import java.lang.reflect.Type;
19+
import java.net.CookieHandler;
20+
import java.net.CookieManager;
2121
import java.net.HttpURLConnection;
2222
import java.net.URL;
2323
import java.net.URLEncoder;
2424
import java.nio.charset.Charset;
25-
import java.util.ArrayList;
2625
import java.util.Date;
27-
import java.util.Iterator;
2826
import java.util.Map;
2927
import java.util.UUID;
3028

@@ -50,6 +48,11 @@ public class JsonServiceClient implements ServiceClient {
5048
public JsonServiceClient(String baseUrl) {
5149
this.baseUrl = baseUrl.endsWith("/") ? baseUrl : baseUrl + "/";
5250
this.replyUrl = this.baseUrl + "json/reply/";
51+
52+
//Automatically populate response cookies
53+
if (CookieHandler.getDefault() == null){
54+
CookieHandler.setDefault(new CookieManager());
55+
}
5356
}
5457

5558
public void setTimeout(int timeoutMs) {
@@ -176,11 +179,13 @@ public HttpURLConnection createRequest(String requestUrl, String httpMethod, byt
176179
private static void addBasicAuth(HttpURLConnection req, String userName, String password) {
177180
req.setRequestProperty(HttpHeaders.Authorization,
178181
"Basic " + Utils.toBase64String(userName + ":" + password));
182+
req.setRequestProperty("X-Auth", "Basic"); // HttpURLConnection doesn't allow re-reading Authorization Header
179183
}
180184

181185
private static boolean shouldAuthenticate(HttpURLConnection req, String userName, String password){
182186
try {
183187
return req.getResponseCode() == 401
188+
&& req.getRequestProperty("X-Auth") == null //only auth if auth never attempted
184189
&& userName != null
185190
&& password != null;
186191
} catch (IOException e) {
@@ -252,6 +257,11 @@ public static boolean hasRequestBody(String httpMethod)
252257
return true;
253258
}
254259

260+
@Override
261+
public boolean getAlwaysSendBasicAuthHeaders() {
262+
return this.alwaysSendBasicAuthHeaders;
263+
}
264+
255265
@Override
256266
public void setAlwaysSendBasicAuthHeaders(boolean value) {
257267
this.alwaysSendBasicAuthHeaders = value;
@@ -368,8 +378,8 @@ public <TResponse> TResponse send(String requestUrl, String httpMethod, byte[] r
368378
else {
369379
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
370380
TResponse response = resClass != null
371-
? (TResponse) getGson().fromJson(reader, resClass)
372-
: (TResponse) getGson().fromJson(reader, resType);
381+
? (TResponse) getGson().fromJson(reader, resClass)
382+
: (TResponse) getGson().fromJson(reader, resType);
373383

374384
reader.close();
375385
return response;

src/AndroidClient/android/src/main/java/net/servicestack/client/ServiceClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import java.util.Map;
99

1010
public interface ServiceClient {
11+
boolean getAlwaysSendBasicAuthHeaders();
1112
void setAlwaysSendBasicAuthHeaders(boolean value);
1213
void setCredentials(String userName, String password);
1314

src/AndroidClient/app/app.iml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,6 @@
6666
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
6767
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
6868
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
69-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
70-
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
7169
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.1.1/jars" />
7270
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/23.1.1/jars" />
7371
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
@@ -76,7 +74,6 @@
7674
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
7775
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
7876
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
79-
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
8077
</content>
8178
<orderEntry type="jdk" jdkName="Android API 23 Platform" jdkType="Android SDK" />
8279
<orderEntry type="sourceFolder" forTests="false" />

src/AndroidClient/client/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dependencies {
1111
testCompile 'org.mockito:mockito-core:1.9.5'
1212
}
1313

14-
version = "1.0.23"
14+
version = "1.0.24"
1515
group = "net.servicestack" // Maven Group ID for the artifact
1616
String packageId = "client"
1717
String groupID = group

src/AndroidClient/client/client.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<module external.linked.project.id=":client" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="net.servicestack" external.system.module.version="1.0.22" type="JAVA_MODULE" version="4">
2+
<module external.linked.project.id=":client" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE" external.system.module.group="net.servicestack" external.system.module.version="1.0.23" type="JAVA_MODULE" version="4">
33
<component name="FacetManager">
44
<facet type="android-gradle" name="Android-Gradle">
55
<configuration>

src/AndroidClient/client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>net.servicestack</groupId>
66
<artifactId>client</artifactId>
7-
<version>1.0.22</version>
7+
<version>1.0.23</version>
88
<name>ServiceStack.Client</name>
99
<description>A client library to call your ServiceStack webservices.</description>
1010
<url>https://github.com/ServiceStack/ServiceStack.Java</url>

src/AndroidClient/client/src/main/java/net/servicestack/client/ApiMember.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,9 @@
5656
/// Gets or sets route to which applies attribute, matches using StartsWith. By default applies to all routes.
5757
/// </summary>
5858
public String Route() default "";
59+
60+
/// <summary>
61+
/// Whether to exclude this property from being included in the ModelSchema
62+
/// </summary>
63+
public boolean ExcludeInSchema() default false;
5964
}

0 commit comments

Comments
 (0)