View Javadoc

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   * Gets {@link WebResource web resources} for testing.
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 <" + getRefImplWebResourceUri(LATEST) + ">");
25          System.out.println("Base URI (version 1) is <" + getRefImplWebResourceUri(REST_VERSION) + ">");
26          System.out.println("Base URI (version 2) is <" + getRefImplWebResourceUri(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(URI uri) {
46          return createClient(true).resource(uri);
47      }
48  
49      public static WebResource anonymous(String version, boolean addXsrfHeader) {
50          return createClient(addXsrfHeader).resource(getRefImplWebResourceUri(version));
51      }
52  
53      public static WebResource anonymous() {
54          return anonymous(REST_VERSION);
55      }
56  
57      public static WebResource authenticate(String username, String password) {
58          return authenticate(username, password, REST_VERSION, true);
59      }
60  
61      public static WebResource authenticate(String username, String password, String version) {
62          return authenticate(username, password, version, true);
63      }
64  
65      public static WebResource authenticate(String username, String password, String version, boolean addXsrfHeader) {
66          Client client = createClient(addXsrfHeader);
67          client.addFilter(new HTTPBasicAuthFilter(username, password));
68          return client.resource(getRefImplWebResourceUri(version));
69      }
70  
71      public static UriBuilder getUriBuilder() {
72          return UriBuilder.fromUri("http://localhost/").port(Integer.parseInt(PORT)).path(CONTEXT);
73      }
74  
75      private static URI getRefImplWebResourceUri(String version) {
76          return getUriBuilder().path("rest").path("refimpl").path(version).build();
77      }
78  
79      private static Client createClient(boolean addXsrfHeader) {
80          Client client = Client.create();
81          if (addXsrfHeader) {
82              client.addFilter(new XsrfHeaderClientFilter());
83          }
84          return client;
85      }
86  }