Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(925)

Unified Diff: remoting/android/java/src/org/chromium/chromoting/HostInfo.java

Issue 348433002: Verify the host-supplied URL matches the domain's allowed URL patterns (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/android/java/src/org/chromium/chromoting/HostInfo.java
diff --git a/remoting/android/java/src/org/chromium/chromoting/HostInfo.java b/remoting/android/java/src/org/chromium/chromoting/HostInfo.java
index 229764ff24f7fd421b7f9ed1d219549c8b3168e7..258bed124dcb6a24014b94948630ed62825ce0c5 100644
--- a/remoting/android/java/src/org/chromium/chromoting/HostInfo.java
+++ b/remoting/android/java/src/org/chromium/chromoting/HostInfo.java
@@ -4,19 +4,57 @@
package org.chromium.chromoting;
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+
/** Class to represent a Host returned by {@link HostListLoader}. */
public class HostInfo {
public final String name;
public final String id;
public final String jabberId;
public final String publicKey;
+ public final ArrayList<String> tokenUrlPatterns;
Lambros 2014/06/18 23:29:06 This might trigger a findbugs warning. You might n
kelvinp 2014/06/19 01:03:50 Done.
public final boolean isOnline;
- public HostInfo(String name, String id, String jabberId, String publicKey, boolean isOnline) {
+ public HostInfo(String name,
+ String id,
+ String jabberId,
+ String publicKey,
+ ArrayList<String> tokenUrlPatterns,
+ boolean isOnline) {
this.name = name;
this.id = id;
this.jabberId = jabberId;
this.publicKey = publicKey;
+ this.tokenUrlPatterns = tokenUrlPatterns;
this.isOnline = isOnline;
}
+
+ public static HostInfo create(JSONObject json) throws JSONException {
+ assert json != null;
+
+ ArrayList<String> tokenUrlPatterns = new ArrayList<String>();
+ // TODO(kelvinp): remove the line below before shipping.
Lambros 2014/06/18 23:29:06 Please remove these lines before landing.
kelvinp 2014/06/19 01:03:49 Done.
+ // tokenUrlPatterns.add("^http://<test machine>:<test port>/.*$");
+ JSONArray jsonPatterns = json.optJSONArray("tokenUrlPatterns");
+
+ if (jsonPatterns != null) {
+ for (int i = 0; i < jsonPatterns.length(); i++) {
+ String pattern = jsonPatterns.getString(i);
+ if (pattern != null && !pattern.isEmpty()) {
+ tokenUrlPatterns.add(pattern);
+ }
+ }
+ }
+ return new HostInfo(
+ json.getString("hostName"),
+ json.getString("hostId"),
+ json.optString("jabberId"),
+ json.optString("publicKey"),
+ tokenUrlPatterns,
+ json.optString("status").equals("ONLINE"));
+ }
}

Powered by Google App Engine
This is Rietveld 408576698