mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-29 12:53:39 -05:00
This commit is contained in:
parent
995f862669
commit
16d7373800
7 changed files with 73 additions and 5 deletions
|
@ -29,11 +29,14 @@ The configuration file is in `.json` format. There is an example at `bin/config.
|
||||||
{
|
{
|
||||||
"port" (int): the port number,
|
"port" (int): the port number,
|
||||||
"rootGitDirectory" (string): the directory in which to store git repos and the db/atts,
|
"rootGitDirectory" (string): the directory in which to store git repos and the db/atts,
|
||||||
"apiKey" (string): currently does nothing,
|
|
||||||
"apiBaseUrl" (string): base url for the snapshot api,
|
"apiBaseUrl" (string): base url for the snapshot api,
|
||||||
"username" (string, optional): username for http basic auth,
|
"username" (string, optional): username for http basic auth,
|
||||||
"password" (string, optional): password for http basic auth,
|
"password" (string, optional): password for http basic auth,
|
||||||
"serviceName" (string): current name of writeLaTeX in case it ever changes ;)
|
"serviceName" (string): current name of writeLaTeX in case it ever changes,
|
||||||
|
"hostname": (string): the public hostname of the server, for postback,
|
||||||
|
"ssl": { (object): ssl configuration
|
||||||
|
"enabled": (boolean): decides on http or https for the postback url
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
You have to restart the server for configuration changes to take effect.
|
You have to restart the server for configuration changes to take effect.
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
{
|
{
|
||||||
"port": 80,
|
"port": 80,
|
||||||
"rootGitDirectory": "/var/wlgb/git",
|
"rootGitDirectory": "/var/wlgb/git",
|
||||||
"apiKey": "",
|
|
||||||
"apiBaseUrl": "https://radiant-wind-3058.herokuapp.com/api/v0",
|
"apiBaseUrl": "https://radiant-wind-3058.herokuapp.com/api/v0",
|
||||||
"username": "staging",
|
"username": "staging",
|
||||||
"password": "6kUfbv0R",
|
"password": "6kUfbv0R",
|
||||||
"serviceName": "Overleaf",
|
"serviceName": "Overleaf",
|
||||||
"hostname": "git.overleaf.com"
|
"hostname": "git.overleaf.com",
|
||||||
|
"ssl": {
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ public class Config implements JSONSource {
|
||||||
private String apiBaseURL;
|
private String apiBaseURL;
|
||||||
private String serviceName;
|
private String serviceName;
|
||||||
private String hostname;
|
private String hostname;
|
||||||
|
private SSLConfig ssl;
|
||||||
|
|
||||||
public Config(String configFilePath) throws InvalidConfigFileException, IOException {
|
public Config(String configFilePath) throws InvalidConfigFileException, IOException {
|
||||||
try {
|
try {
|
||||||
|
@ -45,6 +46,7 @@ public class Config implements JSONSource {
|
||||||
this.apiBaseURL = apiBaseURL;
|
this.apiBaseURL = apiBaseURL;
|
||||||
serviceName = getElement(configObject, "serviceName").getAsString();
|
serviceName = getElement(configObject, "serviceName").getAsString();
|
||||||
hostname = getOptionalString(configObject, "hostname");
|
hostname = getOptionalString(configObject, "hostname");
|
||||||
|
ssl = new SSLConfig(getElement(configObject, "ssl").getAsJsonObject());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getPort() {
|
public int getPort() {
|
||||||
|
@ -91,4 +93,8 @@ public class Config implements JSONSource {
|
||||||
return hostname;
|
return hostname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SSLConfig getSSL() {
|
||||||
|
return ssl;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
package uk.ac.ic.wlgitbridge.application;
|
||||||
|
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
|
import com.google.gson.JsonObject;
|
||||||
|
import uk.ac.ic.wlgitbridge.writelatex.api.request.base.JSONSource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Winston on 05/01/15.
|
||||||
|
*/
|
||||||
|
public class SSLConfig implements JSONSource {
|
||||||
|
|
||||||
|
private boolean enabled;
|
||||||
|
|
||||||
|
public SSLConfig(JsonObject ssl) {
|
||||||
|
fromJSON(ssl);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fromJSON(JsonElement json) {
|
||||||
|
JsonObject obj = json.getAsJsonObject();
|
||||||
|
enabled = obj.get("enabled").getAsJsonPrimitive().getAsBoolean();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isEnabled() {
|
||||||
|
return enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -55,6 +55,8 @@ public class WLGitBridgeServer {
|
||||||
SnapshotAPIRequest.setBaseURL(writeLatexHostname);
|
SnapshotAPIRequest.setBaseURL(writeLatexHostname);
|
||||||
Util.setServiceName(config.getServiceName());
|
Util.setServiceName(config.getServiceName());
|
||||||
Util.setHostname(config.getHostname());
|
Util.setHostname(config.getHostname());
|
||||||
|
Util.setSSL(config.getSSL());
|
||||||
|
Util.setPort(config.getPort());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -67,6 +69,7 @@ public class WLGitBridgeServer {
|
||||||
System.out.println(Util.getServiceName() + "-Git Bridge server started");
|
System.out.println(Util.getServiceName() + "-Git Bridge server started");
|
||||||
System.out.println("Hostname: " + Util.getHostname());
|
System.out.println("Hostname: " + Util.getHostname());
|
||||||
System.out.println("Listening on port: " + port);
|
System.out.println("Listening on port: " + port);
|
||||||
|
System.out.println("SSL enabled: " + Util.getSSLConfig().isEnabled());
|
||||||
System.out.println("Bridged to: " + writeLatexHostname);
|
System.out.println("Bridged to: " + writeLatexHostname);
|
||||||
System.out.println("Root git directory path: " + rootGitDirectoryPath);
|
System.out.println("Root git directory path: " + rootGitDirectoryPath);
|
||||||
} catch (BindException e) {
|
} catch (BindException e) {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package uk.ac.ic.wlgitbridge.util;
|
package uk.ac.ic.wlgitbridge.util;
|
||||||
|
|
||||||
|
import uk.ac.ic.wlgitbridge.application.SSLConfig;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
|
@ -10,6 +12,8 @@ public class Util {
|
||||||
|
|
||||||
private static String SERVICE_NAME;
|
private static String SERVICE_NAME;
|
||||||
private static String HOSTNAME;
|
private static String HOSTNAME;
|
||||||
|
private static SSLConfig SSL_CONFIG;
|
||||||
|
private static int PORT;
|
||||||
|
|
||||||
public static String entries(int entries) {
|
public static String entries(int entries) {
|
||||||
if (entries == 1) {
|
if (entries == 1) {
|
||||||
|
@ -73,4 +77,20 @@ public class Util {
|
||||||
return HOSTNAME;
|
return HOSTNAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static SSLConfig getSSLConfig() {
|
||||||
|
return SSL_CONFIG;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setSSL(SSLConfig ssl) {
|
||||||
|
SSL_CONFIG = ssl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getPort() {
|
||||||
|
return PORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setPort(int port) {
|
||||||
|
PORT = port;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshot;
|
import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshot;
|
||||||
import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshotCallback;
|
import uk.ac.ic.wlgitbridge.bridge.CandidateSnapshotCallback;
|
||||||
|
import uk.ac.ic.wlgitbridge.util.Util;
|
||||||
import uk.ac.ic.wlgitbridge.writelatex.filestore.node.FileNode;
|
import uk.ac.ic.wlgitbridge.writelatex.filestore.node.FileNode;
|
||||||
import uk.ac.ic.wlgitbridge.writelatex.filestore.node.WLDirectoryNode;
|
import uk.ac.ic.wlgitbridge.writelatex.filestore.node.WLDirectoryNode;
|
||||||
import uk.ac.ic.wlgitbridge.writelatex.model.WLProject;
|
import uk.ac.ic.wlgitbridge.writelatex.model.WLProject;
|
||||||
|
@ -24,7 +25,12 @@ public class WLDirectoryNodeSnapshot implements CandidateSnapshot {
|
||||||
public WLDirectoryNodeSnapshot(WLProject project, WLDirectoryNode directoryNode, String hostname, String postbackKey, CandidateSnapshotCallback callback) {
|
public WLDirectoryNodeSnapshot(WLProject project, WLDirectoryNode directoryNode, String hostname, String postbackKey, CandidateSnapshotCallback callback) {
|
||||||
previousVersionID = project.getLatestSnapshotID();
|
previousVersionID = project.getLatestSnapshotID();
|
||||||
projectName = project.getName();
|
projectName = project.getName();
|
||||||
projectURL = "http://" + hostname + "/" + projectName;
|
String protocol = "http";
|
||||||
|
if (Util.getSSLConfig().isEnabled()) {
|
||||||
|
protocol += "s";
|
||||||
|
}
|
||||||
|
projectURL = protocol + "://" + hostname + ":" + Util.getPort() + "/" + projectName;
|
||||||
|
|
||||||
this.directoryNode = directoryNode;
|
this.directoryNode = directoryNode;
|
||||||
this.postbackKey = postbackKey;
|
this.postbackKey = postbackKey;
|
||||||
this.callback = callback;
|
this.callback = callback;
|
||||||
|
|
Loading…
Reference in a new issue