Skip to content
This repository has been archived by the owner on Aug 19, 2020. It is now read-only.

Commit

Permalink
Merge pull request #172 from erickt/pre-auth
Browse files Browse the repository at this point in the history
Pre auth
  • Loading branch information
erickt committed Aug 28, 2014
2 parents 8f72590 + 68814de commit 5bb693b
Show file tree
Hide file tree
Showing 100 changed files with 2,648 additions and 983 deletions.
Binary file added .pom.xml.swp
Binary file not shown.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ jdk:
before_install:
- source ./scripts/ci/dependencies.sh

install: mvn install
install: mvn -q install

after_success:
- mvn cobertura:cobertura coveralls:cobertura
- mvn -q cobertura:cobertura coveralls:cobertura

branches:
except:
Expand Down
8 changes: 8 additions & 0 deletions Security-Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Dendrite - Security

Dendrite uses Spring security in two ways :

1. At the controller level - it filters incoming requests to check and see if it should honor a request.
2. At the service level - it uses the pre-method invocation filter to check and see if the current user
has access to the graph in question by checking the ownership of project.

8 changes: 4 additions & 4 deletions scripts/ci/dependencies.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,27 @@ sudo apt-get install -y git
git clone https://github.com/Lab41/titan.git
cd titan
git checkout dendrite-hadoop2
mvn install -DskipTests
mvn -q install -DskipTests
cd ..

# build faunus-lab41
git clone https://github.com/Lab41/faunus.git
cd faunus
git checkout dendrite-hadoop2
mvn install -DskipTests
mvn -q install -DskipTests
cd ..

# build graphlab-twill
git clone https://github.com/Lab41/graphlab-twill.git
cd graphlab-twill
git checkout master
mvn install -DskipTests
mvn -q install -DskipTests
cd ..

## (optional) build wsdoc for REST api documentation
git clone https://github.com/scottfrederick/springdoclet.git
pushd springdoclet
mvn install -DskipTests
mvn -q install -DskipTests
popd

## (optional) setup LESS compilation for CSS styling
Expand Down
47 changes: 19 additions & 28 deletions src/main/java/org/lab41/dendrite/jobs/AbstractGraphCommitJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,56 +16,46 @@
import org.lab41.dendrite.metagraph.models.BranchMetadata;
import org.lab41.dendrite.metagraph.models.GraphMetadata;
import org.lab41.dendrite.metagraph.models.JobMetadata;
import org.lab41.dendrite.metagraph.models.ProjectMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class AbstractGraphCommitJob extends AbstractJob implements Runnable {

private Logger logger = LoggerFactory.getLogger(AbstractGraphCommitJob.class);

String branchId;
String srcGraphId;
String dstGraphId;
ProjectMetadata.Id projectId;
BranchMetadata.Id branchId;
GraphMetadata.Id srcGraphId;
GraphMetadata.Id dstGraphId;

protected AbstractGraphCommitJob(MetaGraph metaGraph,
String jobId,
String branchId,
String srcGraphId,
String dstGraphId) {
JobMetadata.Id jobId,
ProjectMetadata.Id projectId,
BranchMetadata.Id branchId,
GraphMetadata.Id srcGraphId,
GraphMetadata.Id dstGraphId) {
super(metaGraph, jobId);

this.projectId = projectId;
this.branchId = branchId;
this.srcGraphId = srcGraphId;
this.dstGraphId = dstGraphId;
}

protected AbstractGraphCommitJob(MetaGraph metaGraph,
String jobId,
String branchId) {
super(metaGraph, jobId);

MetaGraphTx tx = metaGraph.newTransaction();

BranchMetadata branchMetadata = tx.getBranch(branchId);
GraphMetadata srcGraphMetadata = branchMetadata.getGraph();
GraphMetadata dstGraphMetadata = tx.createGraph(srcGraphMetadata);

this.branchId = branchId;
this.srcGraphId = srcGraphMetadata.getId();
this.dstGraphId = dstGraphMetadata.getId();

tx.commit();
public ProjectMetadata.Id getProjectId() {
return projectId;
}

public String getBranchId() {
public BranchMetadata.Id getBranchId() {
return branchId;
}

public String getSrcGraphId() {
public GraphMetadata.Id getSrcGraphId() {
return srcGraphId;
}

public String getDstGraphId() {
public GraphMetadata.Id getDstGraphId() {
return dstGraphId;
}

Expand Down Expand Up @@ -101,10 +91,11 @@ public void run() {
setJobState(jobId, JobMetadata.DONE);
} catch (Throwable t) {
setJobState(jobId, JobMetadata.ERROR, t.getMessage());
throw t;
logger.error("error running job: " + t.getMessage());
return;
}

logger.debug("snapshotGraph: finished job: " + jobId);
logger.debug("finished job: " + jobId);
}

protected void copyIndices(DendriteGraph srcGraph, DendriteGraph dstGraph) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public abstract class AbstractGraphUpdateJob extends AbstractJob {

protected DendriteGraph graph;

public AbstractGraphUpdateJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public AbstractGraphUpdateJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId);

this.graph = graph;
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/org/lab41/dendrite/jobs/AbstractJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ public abstract class AbstractJob {
static Logger logger = LoggerFactory.getLogger(AbstractJob.class);

protected MetaGraph metaGraph;
protected String jobId;
protected JobMetadata.Id jobId;

public AbstractJob(MetaGraph metaGraph, String jobId) {
public AbstractJob(MetaGraph metaGraph, JobMetadata.Id jobId) {
this.metaGraph = metaGraph;
this.jobId = jobId;
}

public String getJobId() {
public JobMetadata.Id getJobId() {
return jobId;
}

protected void setJobName(String jobId, String name) {
protected void setJobName(JobMetadata.Id jobId, String name) {
MetaGraphTx tx = metaGraph.newTransaction();
try {
JobMetadata jobMetadata = tx.getJob(jobId);
Expand All @@ -36,11 +36,11 @@ protected void setJobName(String jobId, String name) {
}
}

protected void setJobState(String jobId, String state) {
protected void setJobState(JobMetadata.Id jobId, String state) {
setJobState(jobId, state, null);
}

protected void setJobState(String jobId, String state, String msg) {
protected void setJobState(JobMetadata.Id jobId, String state, String msg) {
MetaGraphTx tx = metaGraph.newTransaction();
try {
JobMetadata jobMetadata = tx.getJob(jobId);
Expand All @@ -58,7 +58,7 @@ protected void setJobState(String jobId, String state, String msg) {
}
}

protected void setJobProgress(String jobId, float progress) {
protected void setJobProgress(JobMetadata.Id jobId, float progress) {
MetaGraphTx tx = metaGraph.newTransaction();
try {
JobMetadata jobMetadata = tx.getJob(jobId);
Expand Down
14 changes: 11 additions & 3 deletions src/main/java/org/lab41/dendrite/jobs/BranchCommitJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,24 @@
import com.tinkerpop.blueprints.Vertex;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.BranchMetadata;
import org.lab41.dendrite.metagraph.models.GraphMetadata;
import org.lab41.dendrite.metagraph.models.JobMetadata;
import org.lab41.dendrite.metagraph.models.ProjectMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class BranchCommitJob extends AbstractGraphCommitJob {

Logger logger = LoggerFactory.getLogger(BranchCommitJob.class);

public BranchCommitJob(MetaGraph metaGraph, String jobId, String branchId) {
super(metaGraph, jobId, branchId);
setJobName(jobId, "commit-graph");
public BranchCommitJob(MetaGraph metaGraph,
JobMetadata.Id jobId,
ProjectMetadata.Id projectId,
BranchMetadata.Id branchId,
GraphMetadata.Id srcGraphId,
GraphMetadata.Id dstGraphId) {
super(metaGraph, jobId, projectId, branchId, srcGraphId, dstGraphId);
}

@Override
Expand Down
29 changes: 10 additions & 19 deletions src/main/java/org/lab41/dendrite/jobs/BranchCommitSubsetJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
import org.elasticsearch.search.SearchHit;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.BranchMetadata;
import org.lab41.dendrite.metagraph.models.GraphMetadata;
import org.lab41.dendrite.metagraph.models.JobMetadata;
import org.lab41.dendrite.metagraph.models.ProjectMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -35,26 +39,13 @@ public class BranchCommitSubsetJob extends AbstractGraphCommitJob {
Set<Object> edges = new HashSet<>();

public BranchCommitSubsetJob(MetaGraph metaGraph,
String jobId,
String branchId,
String query,
int steps) {
super(metaGraph, jobId, branchId);

Preconditions.checkNotNull(query);
Preconditions.checkArgument(steps >= 0);

this.query = query;
this.steps = steps;
}

public BranchCommitSubsetJob(MetaGraph metaGraph,
String jobId,
String branchId,
String srcGraphId,
String dstGraphId,
JobMetadata.Id jobId,
ProjectMetadata.Id projectId,
BranchMetadata.Id branchId,
GraphMetadata.Id srcGraphId,
GraphMetadata.Id dstGraphId,
String query, int steps) {
super(metaGraph, jobId, branchId, srcGraphId, dstGraphId);
super(metaGraph, jobId, projectId, branchId, srcGraphId, dstGraphId);

Preconditions.checkNotNull(query);
Preconditions.checkArgument(steps >= 0);
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/org/lab41/dendrite/jobs/FaunusJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ public class FaunusJob extends AbstractJob implements Callable<Object> {

private enum State { ACTIVE, DONE, ERROR }

private Map<JobID, String> jobMap = new HashMap<>();
private Map<JobID, JobMetadata.Id> jobMap = new HashMap<>();
private Set<JobID> doneJobs = new HashSet<>();
private FaunusPipeline faunusPipeline;
private Lock lock = new ReentrantLock();
private Condition finished = lock.newCondition();
private State state = State.ACTIVE;

public FaunusJob(MetaGraph metaGraph, String jobId, FaunusPipeline faunusPipeline) {
public FaunusJob(MetaGraph metaGraph, JobMetadata.Id jobId, FaunusPipeline faunusPipeline) {
super(metaGraph, jobId);

this.faunusPipeline = faunusPipeline;
Expand Down Expand Up @@ -156,7 +156,7 @@ private void checkJobControl(FaunusJobControl jobControl) throws Exception {
jobMap.put(hadoopJobId, childJobMetadata.getId());
}

String jobMetadataId = jobMap.get(hadoopJobId);
JobMetadata.Id jobMetadataId = jobMap.get(hadoopJobId);
setJobProgress(jobMetadataId, progress);
totalProgress += (progress / ((float) jobsInProgress.size()));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class BarycenterDistanceJob extends AbstractGraphUpdateJob {

private static String BARYCENTER_KEY = "jungBarycenter";

public BarycenterDistanceJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public BarycenterDistanceJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId, graph);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class BetweennessCentralityJob extends AbstractGraphUpdateJob {

private static String BETWEENNESS_KEY = "jungBetweenness";

public BetweennessCentralityJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public BetweennessCentralityJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId, graph);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class ClosenessCentralityJob extends AbstractGraphUpdateJob {

private static String CLOSENESS_KEY = "jungCloseness";

public ClosenessCentralityJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public ClosenessCentralityJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId, graph);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class EigenvectorCentralityJob extends AbstractGraphUpdateJob {

private static String EIGENVECTOR_KEY = "jungEigenvector";

public EigenvectorCentralityJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public EigenvectorCentralityJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId, graph);
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/org/lab41/dendrite/jobs/jung/PageRankJob.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class PageRankJob extends AbstractGraphUpdateJob {

private static String PAGERANK_KEY = "jungPagerank";
private double alpha;

public PageRankJob(MetaGraph metaGraph, String jobId, DendriteGraph graph, double alpha) {
public PageRankJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph, double alpha) {
super(metaGraph, jobId, graph);

this.alpha = alpha;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,15 @@
import org.lab41.dendrite.jobs.AbstractGraphUpdateJob;
import org.lab41.dendrite.metagraph.DendriteGraph;
import org.lab41.dendrite.metagraph.MetaGraph;
import org.lab41.dendrite.metagraph.models.JobMetadata;

public class DegreeCentralityJob extends AbstractGraphUpdateJob {

private static String IN_DEGREES_KEY = "titanInDegrees";
private static String OUT_DEGREES_KEY = "titanOutDegrees";
private static String DEGREES_KEY = "titanDegrees";

public DegreeCentralityJob(MetaGraph metaGraph, String jobId, DendriteGraph graph) {
public DegreeCentralityJob(MetaGraph metaGraph, JobMetadata.Id jobId, DendriteGraph graph) {
super(metaGraph, jobId, graph);
}

Expand Down

0 comments on commit 5bb693b

Please sign in to comment.