Skip to content

Commit f3fab48

Browse files
committed
Decoupling authenticator. #59
1 parent f6ab23a commit f3fab48

File tree

5 files changed

+39
-21
lines changed

5 files changed

+39
-21
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package uk.ac.open.kmi.basil.it;
2+
3+
import org.apache.commons.io.IOUtils;
4+
import org.apache.http.client.methods.CloseableHttpResponse;
5+
import org.apache.http.client.methods.HttpPost;
6+
import org.apache.http.client.protocol.HttpClientContext;
7+
import org.apache.http.entity.BasicHttpEntity;
8+
import org.apache.http.impl.client.HttpClients;
9+
import org.slf4j.Logger;
10+
import org.slf4j.LoggerFactory;
11+
12+
public class Authenticator {
13+
private static final Logger log = LoggerFactory.getLogger(Authenticator.class);
14+
public CloseableHttpResponse authenticate(String serverBaseUrl, String username, String password, HttpClientContext httpClientContext) throws Exception {
15+
log.trace("Authenticating {}", username);
16+
HttpPost post = new HttpPost(serverBaseUrl + "/basil/auth/login");
17+
post.addHeader("Content-type", "application/json");
18+
BasicHttpEntity e = new BasicHttpEntity();
19+
e.setContent(IOUtils.toInputStream("{username: \"" + username + "\", password: \""
20+
+ password + "\"}"));
21+
post.setEntity(e);
22+
return HttpClients.createDefault().execute(post, httpClientContext);
23+
}
24+
}

it/src/main/java/uk/ac/open/kmi/basil/it/BasilTestBase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public class BasilTestBase {
4747
protected RequestBuilder builder;
4848
protected CloseableHttpClient httpClient = null;
4949
protected RequestExecutor executor;
50-
50+
protected static final Authenticator authenticator = new Authenticator();
5151
/**
5252
* Override to add features
5353
*

it/src/main/java/uk/ac/open/kmi/basil/it/BasilTestServer.java

+10-16
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,7 @@
1313
import java.sql.Statement;
1414
import java.util.Properties;
1515

16-
import org.apache.commons.io.IOUtils;
1716
import org.apache.commons.lang.RandomStringUtils;
18-
import org.apache.http.client.methods.CloseableHttpResponse;
19-
import org.apache.http.client.methods.HttpPost;
20-
import org.apache.http.client.protocol.HttpClientContext;
21-
import org.apache.http.entity.BasicHttpEntity;
22-
import org.apache.http.impl.client.HttpClients;
2317
import org.apache.shiro.authc.credential.DefaultPasswordService;
2418
import org.apache.shiro.config.Ini;
2519
import org.apache.stanbol.commons.testing.jarexec.JarExecutor;
@@ -105,16 +99,16 @@ public static String getServerBaseUrl() {
10599
return serverBaseUrl;
106100
}
107101

108-
public static CloseableHttpResponse authenticate(String username, String password, HttpClientContext httpClientContext) throws Exception {
109-
log.trace("Authenticating {}", username);
110-
HttpPost post = new HttpPost(BasilTestServer.getServerBaseUrl() + "/basil/auth/login");
111-
post.addHeader("Content-type", "application/json");
112-
BasicHttpEntity e = new BasicHttpEntity();
113-
e.setContent(IOUtils.toInputStream("{username: \"" + username + "\", password: \""
114-
+ password + "\"}"));
115-
post.setEntity(e);
116-
return HttpClients.createDefault().execute(post, httpClientContext);
117-
}
102+
// public static CloseableHttpResponse authenticate(String username, String password, HttpClientContext httpClientContext) throws Exception {
103+
// log.trace("Authenticating {}", username);
104+
// HttpPost post = new HttpPost(BasilTestServer.getServerBaseUrl() + "/basil/auth/login");
105+
// post.addHeader("Content-type", "application/json");
106+
// BasicHttpEntity e = new BasicHttpEntity();
107+
// e.setContent(IOUtils.toInputStream("{username: \"" + username + "\", password: \""
108+
// + password + "\"}"));
109+
// post.setEntity(e);
110+
// return HttpClients.createDefault().execute(post, httpClientContext);
111+
// }
118112

119113
private static String createTestDb() throws Exception {
120114
log.info("Creating test db (once only)");

it/src/test/java/uk/ac/open/kmi/basil/it/AuthenticatedTestBase.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static void beforeClass() throws Exception {
1818
// Authenticate and remembered session cookie (in context)
1919
context = HttpClientContext.create();
2020
config = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD).build();
21-
BasilTestServer.authenticate(BasilTestServer.getBasilUser(), BasilTestServer.getBasilPassword(), context);
21+
authenticator.authenticate(BasilTestServer.getServerBaseUrl(), BasilTestServer.getBasilUser(), BasilTestServer.getBasilPassword(), context);
2222
}
2323

2424
@Override

it/src/test/java/uk/ac/open/kmi/basil/it/LoginLogoutTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ public void L2_Logout() throws Exception {
3333
@Test
3434
public void L3_LoginFailed() throws Exception {
3535
log.info("#{}", name.getMethodName());
36-
HttpResponse response = BasilTestServer.authenticate("xxxxxxxxx", BasilTestServer.getBasilPassword(), getClientContext());
36+
HttpResponse response = authenticator.authenticate(BasilTestServer.getServerBaseUrl(), "xxxxxxxxx", BasilTestServer.getBasilPassword(), getClientContext());
3737
Assert.assertTrue(response.getStatusLine().getStatusCode() == 403);
3838
}
3939

4040
@Test
4141
public void L4_LoginFailed() throws Exception {
4242
log.info("#{}", name.getMethodName());
43-
HttpResponse response = BasilTestServer.authenticate(BasilTestServer.getBasilUser(), "yyyyyyyy", getClientContext());
43+
HttpResponse response = authenticator.authenticate(BasilTestServer.getServerBaseUrl(), BasilTestServer.getBasilUser(), "yyyyyyyy", getClientContext());
4444
log.info("authenticated: {}", response.getStatusLine());
4545
Assert.assertTrue(response.getStatusLine().getStatusCode() == 403);
4646
}
4747

4848
@Test
4949
public void L5_LoginFailed() throws Exception {
5050
log.info("#{}", name.getMethodName());
51-
HttpResponse response = BasilTestServer.authenticate("xxxxxxxxxxxx", "yyyyyyyy", getClientContext());
51+
HttpResponse response = authenticator.authenticate(BasilTestServer.getServerBaseUrl(), "xxxxxxxxxxxx", "yyyyyyyy", getClientContext());
5252
Assert.assertTrue(response.getStatusLine().getStatusCode() == 403);
5353
}
5454
}

0 commit comments

Comments
 (0)