1 package com.atlassian.rest.jersey.client;
2
3 import com.sun.jersey.api.client.Client;
4 import com.sun.jersey.api.client.WebResource;
5 import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
6
7 import java.net.URI;
8 import javax.ws.rs.core.UriBuilder;
9
10
11
12
13 public final class WebResourceFactory {
14 public static final String LATEST = "latest";
15 public static final String REST_VERSION = System.getProperty("refimpl.rest.version", "1");
16 public static final String REST_VERSION_2 = System.getProperty("refimpl2.rest.version", "2");
17
18 private static final String ADMIN_USERNAME = "admin";
19 private static final String ADMIN_PASSWORD = "admin";
20 private static final String PORT = System.getProperty("http.port", "5990");
21 private static final String CONTEXT = System.getProperty("context.path", "/refapp");
22
23 static {
24 System.out.println("Base URI (latest) is <" + getWebResourceUri(LATEST) + ">");
25 System.out.println("Base URI (version 1) is <" + getWebResourceUri(REST_VERSION) + ">");
26 System.out.println("Base URI (version 2) is <" + getWebResourceUri(REST_VERSION_2) + ">");
27 }
28
29 public static WebResource authenticated(String version, boolean addXsrfHeader) {
30 return authenticate(ADMIN_USERNAME, ADMIN_PASSWORD, version, addXsrfHeader);
31 }
32
33 public static WebResource authenticated(String version) {
34 return authenticate(ADMIN_USERNAME, ADMIN_PASSWORD, version, true);
35 }
36
37 public static WebResource authenticated() {
38 return authenticated(REST_VERSION);
39 }
40
41 public static WebResource anonymous(String version) {
42 return anonymous(version, true);
43 }
44
45 public static WebResource anonymous(String version, boolean addXsrfHeader) {
46 return createClient(addXsrfHeader).resource(getWebResourceUri(version));
47 }
48
49 public static WebResource anonymous() {
50 return anonymous(REST_VERSION);
51 }
52
53 public static WebResource authenticate(String username, String password) {
54 return authenticate(username, password, REST_VERSION, true);
55 }
56
57 public static WebResource authenticate(String username, String password, String version) {
58 return authenticate(username, password, version, true);
59 }
60
61 public static WebResource authenticate(String username, String password, String version, boolean addXsrfHeader) {
62 Client client = createClient(addXsrfHeader);
63 client.addFilter(new HTTPBasicAuthFilter(username, password));
64 return client.resource(getWebResourceUri(version));
65 }
66
67 public static UriBuilder getUriBuilder() {
68 return UriBuilder.fromUri("http://localhost/").port(Integer.parseInt(PORT)).path(CONTEXT);
69 }
70
71 private static URI getWebResourceUri(String version) {
72 return getUriBuilder().path("rest").path("refimpl").path(version).build();
73 }
74
75 private static Client createClient(boolean addXsrfHeader) {
76 Client client = Client.create();
77 if (addXsrfHeader) {
78 client.addFilter(new XsrfHeaderClientFilter());
79 }
80 return client;
81 }
82 }