You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oltu.apache.org by si...@apache.org on 2014/06/25 14:30:30 UTC
svn commit: r1605370 - in /oltu/trunk/oauth-2.0/common/src:
main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java
test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java
Author: simonetripodi
Date: Wed Jun 25 12:30:29 2014
New Revision: 1605370
URL: http://svn.apache.org/r1605370
Log:
OLTU-105 - Android 4.1 expects "realm" as first parameter in www-authenticate header
applied patch kindly provided by Dominik Schuermann and reviewed by Charles Simpson
Modified:
oltu/trunk/oauth-2.0/common/src/main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java
oltu/trunk/oauth-2.0/common/src/test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java
Modified: oltu/trunk/oauth-2.0/common/src/main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/common/src/main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java?rev=1605370&r1=1605369&r2=1605370&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/common/src/main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java (original)
+++ oltu/trunk/oauth-2.0/common/src/main/java/org/apache/oltu/oauth2/common/utils/OAuthUtils.java Wed Jun 25 12:30:29 2014
@@ -400,6 +400,23 @@ public final class OAuthUtils {
public static String encodeOAuthHeader(Map<String, Object> entries) {
StringBuffer sb = new StringBuffer();
sb.append(OAuth.OAUTH_HEADER_NAME).append(" ");
+ /*
+ * Android 4.1 requires realm as first parameter!
+ * If not set, it will throw an IOException
+ * see parseChallenges in
+ * https://android.googlesource.com/platform/libcore/+/android-4.1.2_r2/luni/src/main/java/libcore/net/http/HeaderParser.java
+ * more information:
+ * http://stackoverflow.com/questions/11810447/httpurlconnection-worked-fine-in-android-2-x-but-not-in-4-1-no-authentication-c
+ */
+ if (entries.get("realm") != null) {
+ String value = String.valueOf(entries.get("realm"));
+ if (!OAuthUtils.isEmpty(value)) {
+ sb.append("realm=\"");
+ sb.append(value);
+ sb.append("\",");
+ }
+ entries.remove("realm");
+ }
for (Map.Entry<String, Object> entry : entries.entrySet()) {
String value = entry.getValue() == null? null: String.valueOf(entry.getValue());
if (!OAuthUtils.isEmpty(entry.getKey()) && !OAuthUtils.isEmpty(value)) {
Modified: oltu/trunk/oauth-2.0/common/src/test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java
URL: http://svn.apache.org/viewvc/oltu/trunk/oauth-2.0/common/src/test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java?rev=1605370&r1=1605369&r2=1605370&view=diff
==============================================================================
--- oltu/trunk/oauth-2.0/common/src/test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java (original)
+++ oltu/trunk/oauth-2.0/common/src/test/java/org/apache/oltu/oauth2/common/utils/OAuthUtilsTest.java Wed Jun 25 12:30:29 2014
@@ -167,7 +167,7 @@ public class OAuthUtilsTest {
entries.put("error", "invalid_token");
String header = OAuthUtils.encodeOAuthHeader(entries);
- assertEquals("Bearer error=\"invalid_token\",realm=\"Some Example Realm\"", header);
+ assertEquals("Bearer realm=\"Some Example Realm\",error=\"invalid_token\"", header);
}
@Test