use of org.syncany.config.to.UserTO in project syncany by syncany.
the class WebServer method initServer.
private void initServer(DaemonConfigTO daemonConfigTO) throws Exception {
WebServerTO webServerConfig = daemonConfigTO.getWebServer();
// Bind address and port
String bindAddress = webServerConfig.getBindAddress();
int bindPort = webServerConfig.getBindPort();
// Users (incl. CLI user!)
List<UserTO> users = readWebServerUsers(daemonConfigTO);
IdentityManager identityManager = new MapIdentityManager(users);
// (Re-)generate keypair/certificate (if requested)
boolean certificateAutoGenerate = webServerConfig.isCertificateAutoGenerate();
String certificateCommonName = webServerConfig.getCertificateCommonName();
if (certificateAutoGenerate && certificateCommonNameChanged(certificateCommonName)) {
generateNewKeyPairAndCertificate(certificateCommonName);
}
// Set up the handlers for WebSocket, REST and the web interface
HttpHandler pathHttpHandler = path().addPrefixPath(API_ENDPOINT_WS_XML, websocket(new InternalWebSocketHandler(this, certificateCommonName, RequestFormatType.XML))).addPrefixPath(API_ENDPOINT_WS_JSON, websocket(new InternalWebSocketHandler(this, certificateCommonName, RequestFormatType.JSON))).addPrefixPath(API_ENDPOINT_REST_XML, new InternalRestHandler(this, RequestFormatType.XML)).addPrefixPath(API_ENDPOINT_REST_JSON, new InternalRestHandler(this, RequestFormatType.JSON)).addPrefixPath("/", new InternalWebInterfaceHandler());
// Add some security spices
HttpHandler securityPathHttpHandler = addSecurity(pathHttpHandler, identityManager);
SSLContext sslContext = UserConfig.createUserSSLContext();
// And go for it!
webServer = Undertow.builder().addHttpsListener(bindPort, bindAddress, sslContext).setHandler(securityPathHttpHandler).build();
logger.log(Level.INFO, "Initialized web server.");
}
use of org.syncany.config.to.UserTO in project syncany by syncany.
the class DaemonOperation method loadOrCreateConfig.
// Config related functions. Used on starting and reloading.
private void loadOrCreateConfig() {
try {
File daemonConfigFile = new File(UserConfig.getUserConfigDir(), UserConfig.DAEMON_FILE);
File daemonConfigFileExample = new File(UserConfig.getUserConfigDir(), UserConfig.DAEMON_EXAMPLE_FILE);
if (daemonConfigFile.exists()) {
logger.log(Level.INFO, "Loading daemon config file from " + daemonConfigFile + " ...");
daemonConfig = DaemonConfigTO.load(daemonConfigFile);
} else {
logger.log(Level.INFO, "Daemon config file does not exist.");
logger.log(Level.INFO, "- Writing example config file to " + daemonConfigFileExample + " ...");
DaemonConfigHelper.createAndWriteExampleDaemonConfig(daemonConfigFileExample);
logger.log(Level.INFO, "- Creating at " + daemonConfigFile + " ...");
daemonConfig = DaemonConfigHelper.createAndWriteDefaultDaemonConfig(daemonConfigFile);
}
// Add user and password for access from the CLI
if (daemonConfig.getPortTO() == null && portTO == null) {
// Access info has not been created yet, generate new user-password pair
String accessToken = CipherUtil.createRandomAlphabeticString(20);
UserTO cliUser = new UserTO();
cliUser.setUsername(UserConfig.USER_CLI);
cliUser.setPassword(accessToken);
portTO = new PortTO();
portTO.setPort(daemonConfig.getWebServer().getBindPort());
portTO.setUser(cliUser);
daemonConfig.setPortTO(portTO);
} else if (daemonConfig.getPortTO() == null) {
// Access info is not included in the daemon config, but exists. Happens when reloading.
// We reload the information about the port, but keep the access token the same.
portTO.setPort(daemonConfig.getWebServer().getBindPort());
daemonConfig.setPortTO(portTO);
}
} catch (Exception e) {
logger.log(Level.WARNING, "Cannot (re-)load config. Exception thrown.", e);
}
}
use of org.syncany.config.to.UserTO in project syncany by syncany.
the class DaemonConfigHelper method createAndWriteDaemonConfig.
public static DaemonConfigTO createAndWriteDaemonConfig(File configFile, List<FolderTO> folders) throws ConfigException {
UserTO defaultUserTO = new UserTO();
defaultUserTO.setUsername(UserConfig.USER_ADMIN);
defaultUserTO.setPassword(CipherUtil.createRandomAlphabeticString(12));
ArrayList<UserTO> users = new ArrayList<>();
users.add(defaultUserTO);
DaemonConfigTO defaultDaemonConfigTO = new DaemonConfigTO();
defaultDaemonConfigTO.setFolders(new ArrayList<>(folders));
defaultDaemonConfigTO.setUsers(users);
defaultDaemonConfigTO.save(configFile);
return defaultDaemonConfigTO;
}
use of org.syncany.config.to.UserTO in project syncany by syncany.
the class TestDaemonUtil method createPortTO.
public static PortTO createPortTO(int port) {
String accessToken = CipherUtil.createRandomAlphabeticString(20);
UserTO cliUser = new UserTO();
cliUser.setUsername("CLI");
cliUser.setPassword(accessToken);
PortTO portTO = new PortTO();
portTO.setPort(port);
portTO.setUser(cliUser);
return portTO;
}
Aggregations