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 <" + 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  }