Commit a70344e6 authored by Nastuzzi Samy's avatar Nastuzzi Samy
Browse files

CAS connexion bug

CAS doesn't allow JSON data
Add content type choice for post information
parent 81cecf07
...@@ -36,7 +36,7 @@ public class CASConnexion { ...@@ -36,7 +36,7 @@ public class CASConnexion {
request.addPost("username", username); request.addPost("username", username);
request.addPost("password", password); request.addPost("password", password);
if (request.post() == 201) if (request.post(false) == 201)
this.location = request.getHeader("Location"); this.location = request.getHeader("Location");
else else
throw new Exception("Not Connected"); throw new Exception("Not Connected");
...@@ -72,7 +72,7 @@ public class CASConnexion { ...@@ -72,7 +72,7 @@ public class CASConnexion {
HTTPRequest request = new HTTPRequest(this.location); HTTPRequest request = new HTTPRequest(this.location);
request.addPost("service", service); request.addPost("service", service);
if (request.post() == 200) if (request.post(false) == 200)
this.ticket = request.getResponse(); this.ticket = request.getResponse();
else else
throw new RuntimeException("Service not added"); throw new RuntimeException("Service not added");
......
...@@ -85,13 +85,14 @@ public class HTTPRequest { ...@@ -85,13 +85,14 @@ public class HTTPRequest {
return getResponseCode(); return getResponseCode();
} }
public int post() { public int post() { return post(true); }
public int post(final Boolean sendJSON) {
String get = null; String get = null;
String post = null; String post = null;
try { try {
get = get2String(this.getArgs); get = get2String(this.getArgs);
post = post2String(this.postArgs); post = post2String(this.postArgs, sendJSON);
} }
catch (Exception e) { catch (Exception e) {
Log.e(LOG_TAG, "error: " + e.getMessage()); Log.e(LOG_TAG, "error: " + e.getMessage());
...@@ -102,7 +103,7 @@ public class HTTPRequest { ...@@ -102,7 +103,7 @@ public class HTTPRequest {
try { try {
this.request = (HttpURLConnection) (new URL(this.url + get)).openConnection(); this.request = (HttpURLConnection) (new URL(this.url + get)).openConnection();
this.request.setRequestMethod("POST"); this.request.setRequestMethod("POST");
this.request.setRequestProperty("Content-Type", "application/json"); this.request.setRequestProperty("Content-Type", sendJSON ? "application/json" : "application/x-www-form-urlencoded");
this.request.setRequestProperty("charset", "utf-8"); this.request.setRequestProperty("charset", "utf-8");
this.request.setRequestProperty("Cookie", getCookiesHeader()); this.request.setRequestProperty("Cookie", getCookiesHeader());
this.request.setUseCaches(false); this.request.setUseCaches(false);
...@@ -293,8 +294,16 @@ public class HTTPRequest { ...@@ -293,8 +294,16 @@ public class HTTPRequest {
return data; return data;
} }
protected String post2String(Map<String, Object> args) throws UnsupportedEncodingException { protected String post2String(Map<String, Object> args, boolean inJSON) throws Exception {
if (inJSON)
return map2JsonNode(args).toString(); return map2JsonNode(args).toString();
String data = "";
for (String arg : args.keySet())
data += (URLEncoder.encode(arg, "UTF-8") + "=" + URLEncoder.encode((String) args.get(arg), "UTF-8") + "&");
return data.equals("") ? "" : data.substring(0, data.length() - 1);
} }
public void setGet(Map<String, String> args) { public void setGet(Map<String, String> args) {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment