Skip to content

Commit

Permalink
Implemented REST version of auth procedures test and scenarios tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
fickludd committed Jun 28, 2016
1 parent 968cef2 commit eec1fc6
Show file tree
Hide file tree
Showing 13 changed files with 757 additions and 454 deletions.
Expand Up @@ -19,38 +19,30 @@
*/
package org.neo4j.server.rest.security;

import com.sun.jersey.core.util.Base64;
import org.codehaus.jackson.JsonNode;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

import java.io.IOException;
import javax.ws.rs.core.HttpHeaders;

import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.impl.annotations.Documented;
import org.neo4j.server.CommunityNeoServer;
import org.neo4j.server.helpers.CommunityServerBuilder;
import org.neo4j.server.rest.RESTDocsGenerator;
import org.neo4j.server.rest.domain.JsonHelper;
import org.neo4j.server.rest.domain.JsonParseException;
import org.neo4j.string.UTF8;
import org.neo4j.test.TestData;
import org.neo4j.test.server.ExclusiveServerTestBase;
import org.neo4j.test.server.HTTP;
import org.neo4j.test.server.HTTP.RawPayload;

import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

public class AuthenticationDocIT extends ExclusiveServerTestBase
public class AuthenticationDocIT extends CommunityServerTestBase
{
@Rule
public TestData<RESTDocsGenerator> gen = TestData.producedThrough( RESTDocsGenerator.PRODUCER );
protected CommunityNeoServer server;

@Before
public void setUp()
Expand Down Expand Up @@ -303,12 +295,6 @@ private void assertAuthorizationRequired( String method, String path, Object pay
assertThat(response.status(), equalTo(expectedAuthorizedStatus));
}

@After
public void cleanup()
{
if(server != null) {server.stop();}
}

public void startServerWithConfiguredUser() throws IOException
{
startServer( true );
Expand All @@ -319,37 +305,4 @@ public void startServerWithConfiguredUser() throws IOException
);
assertEquals( 200, post.status() );
}

public void startServer( boolean authEnabled ) throws IOException
{
server = CommunityServerBuilder.server()
.withProperty( GraphDatabaseSettings.auth_enabled.name(), Boolean.toString( authEnabled ) )
.build();
server.start();
}

protected String challengeResponse( String username, String password )
{
return "Basic " + base64( username + ":" + password );
}

private String dataURL()
{
return server.baseUri().resolve( "db/data/" ).toString();
}

private String userURL( String username )
{
return server.baseUri().resolve( "user/" + username ).toString();
}

private String passwordURL( String username )
{
return server.baseUri().resolve( "user/" + username + "/password" ).toString();
}

private String base64(String value)
{
return UTF8.decode( Base64.encode( value ) );
}
}
@@ -0,0 +1,75 @@
/*
* Copyright (c) 2002-2016 "Neo Technology,"
* Network Engine for Objects in Lund AB [http://neotechnology.com]
*
* This file is part of Neo4j.
*
* Neo4j is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.neo4j.server.rest.security;

import com.sun.jersey.core.util.Base64;
import org.junit.After;

import java.io.IOException;

import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.server.CommunityNeoServer;
import org.neo4j.server.helpers.CommunityServerBuilder;
import org.neo4j.string.UTF8;
import org.neo4j.test.server.ExclusiveServerTestBase;

public class CommunityServerTestBase extends ExclusiveServerTestBase
{
protected CommunityNeoServer server;

@After
public void cleanup()
{
if(server != null) {server.stop();}
}

protected void startServer( boolean authEnabled ) throws IOException
{
server = CommunityServerBuilder.server()
.withProperty( GraphDatabaseSettings.auth_enabled.name(), Boolean.toString( authEnabled ) )
.build();
server.start();
}

protected String challengeResponse( String username, String password )
{
return "Basic " + base64( username + ":" + password );
}

protected String dataURL()
{
return server.baseUri().resolve( "db/data/" ).toString();
}

protected String userURL( String username )
{
return server.baseUri().resolve( "user/" + username ).toString();
}

protected String passwordURL( String username )
{
return server.baseUri().resolve( "user/" + username + "/password" ).toString();
}

protected String base64(String value)
{
return UTF8.decode( Base64.encode( value ) );
}
}

0 comments on commit eec1fc6

Please sign in to comment.