/*
* Copyright 2012 Nodeable Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.streamreduce.rest;
import com.streamreduce.AbstractInContainerTestCase;
import com.streamreduce.Constants;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.HttpProtocolParams;
import org.junit.Ignore;
import org.junit.Test;
import static net.sf.ezmorph.test.ArrayAssertions.assertEquals;
import static org.junit.Assert.assertNotNull;
public class AuthenticationResourceITCase extends AbstractInContainerTestCase {
protected String getUrl() {
return getPublicApiUrlBase() + "/authentication/login";
}
public AuthenticationResourceITCase() {
super();
}
@Test
@Ignore
public void testConsoleLoginOk() throws Exception {
HttpClient httpClient = new DefaultHttpClient();
// Set the User-Agent to be safe
httpClient.getParams().setParameter(HttpProtocolParams.USER_AGENT, Constants.NODEABLE_HTTP_USER_AGENT);
HttpPost httpPost = new HttpPost(getPublicUrlBase() + "/authentication/login");
//HttpState state = httpClient.getState();
String authnToken;
HttpResponse response = null;
try {
// Login is done via Basic Authentication at this time
// state.setCredentials(new AuthScope(null, AuthScope.ANY_PORT, null, AuthScope.ANY_SCHEME),
// new UsernamePasswordCredentials(testUsername, testUsername));
response = httpClient.execute(httpPost);
authnToken = response.getFirstHeader(Constants.NODEABLE_AUTH_TOKEN).getValue();
} finally {
httpPost.releaseConnection();
}
if (response != null) {
assertEquals(HttpStatus.SC_NO_CONTENT, response.getStatusLine().getStatusCode());
}
assertNotNull(authnToken);
}
@Ignore
@Test
public void testConsoleLoginFailure() throws Exception {
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(HttpProtocolParams.USER_AGENT, Constants.NODEABLE_HTTP_USER_AGENT);
// HttpState state = client.getState();
// state.setCredentials(new AuthScope(null, AuthScope.ANY_PORT, null, AuthScope.ANY_SCHEME),
// new UsernamePasswordCredentials(testUsername, "wrong_password"));
HttpPost post = new HttpPost(getUrl());
try {
int status = client.execute(post).getStatusLine().getStatusCode();
assertEquals(HttpStatus.SC_UNAUTHORIZED, status);
} finally {
post.releaseConnection();
}
}
}