-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCloudspongeController.groovy
67 lines (52 loc) · 2.18 KB
/
CloudspongeController.groovy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package proxy
import org.codehaus.groovy.grails.web.util.WebUtils
class CloudspongeController {
def proxy = {
// append the incoming querystring to the CloudSponge auth endpoint
String uri = "https://api.cloudsponge.com/auth?" + request.queryString
URL url = new URL(uri)
HttpURLConnection connection = (HttpURLConnection) url.openConnection()
connection.setRequestMethod(request.method)
// Don't follow redirects, api.cloudsponge.com should return a redirect that should be passed to the client UA
connection.setInstanceFollowRedirects(false);
if (request.method == "POST") {
// format the form data as: name1=value1&name2=value2&..
String bodyParameters = WebUtils.toQueryString(params).substring(1)
// WindowsLive POSTs the token, so this page should POST to api.cloudsponge.com
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded")
byte[] bytes = bodyParameters.getBytes("ASCII")
OutputStream os = null
try {
// send the Post
connection.setDoOutput(true)
os = connection.getOutputStream()
os.write(bytes)
} catch (Exception ex) {
println "An error occurred while importing contacts: " + ex.message
} finally {
if (os != null) {
os.close()
}
}
}
try {
// get the response
InputStream webResponse = connection.getInputStream()
if (webResponse == null) {
println "An error occurred while importing contacts: null web response"
return
}
// typically, this should redirect
if (connection.getHeaderFields()["Location"] != null) {
redirect(url: connection.getHeaderFields()["Location"][0])
return // redirect and end processing now, nothing after this line will be executed.
}
println "An error occurred while importing contacts: null location"
return
}
catch (Exception ex) {
println "An error occurred while importing contacts: " + ex.message
return
}
}
}