Browse Source

WIP. send host key to flex router

pull/51/head
Jonathan Cobb 4 years ago
parent
commit
7fa891448f
4 changed files with 12 additions and 4 deletions
  1. +5
    -2
      bubble-server/src/main/java/bubble/ApiConstants.java
  2. +3
    -0
      bubble-server/src/main/java/bubble/dao/device/FlexRouterDAO.java
  3. +4
    -1
      bubble-server/src/main/java/bubble/model/device/FlexRouter.java
  4. +0
    -1
      bubble-server/src/main/java/bubble/resources/device/FlexRoutersResource.java

+ 5
- 2
bubble-server/src/main/java/bubble/ApiConstants.java View File

@@ -12,7 +12,6 @@ import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomUtils;
import org.cobbzilla.util.daemon.ZillaRuntime;
import org.cobbzilla.util.io.FileUtil;
import org.glassfish.grizzly.http.server.Request;
import org.glassfish.jersey.server.ContainerRequest;

@@ -36,6 +35,7 @@ import static org.cobbzilla.util.json.JsonUtil.COMPACT_MAPPER;
import static org.cobbzilla.util.json.JsonUtil.json;
import static org.cobbzilla.util.network.NetworkUtil.*;
import static org.cobbzilla.util.string.StringUtil.splitAndTrim;
import static org.cobbzilla.util.system.CommandShell.execScript;
import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx;

@Slf4j
@@ -58,7 +58,7 @@ public class ApiConstants {

private static String initDefaultDomain() {
final File f = new File(HOME_DIR, ".BUBBLE_DEFAULT_DOMAIN");
final String domain = FileUtil.toStringOrDie(f);
final String domain = toStringOrDie(f);
return domain != null ? domain.trim() : die("initDefaultDomain: "+abs(f)+" not found");
}

@@ -75,6 +75,9 @@ public class ApiConstants {

public static final GoogleAuthenticator G_AUTH = new GoogleAuthenticator();

public static final String HOST_KEY = toStringOrDie("/etc/ssh/ssh_host_rsa_key.pub").trim();
public static final String KNOWN_HOST_KEY = execScript("ssh-keyscan -t rsa $(hostname -d) 2>&1 | grep -v \"^#\"");

public static final Predicate ALWAYS_TRUE = m -> true;
public static final String HOME_DIR;
static {


+ 3
- 0
bubble-server/src/main/java/bubble/dao/device/FlexRouterDAO.java View File

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Repository;

import java.util.List;

import static bubble.ApiConstants.KNOWN_HOST_KEY;
import static org.cobbzilla.util.daemon.ZillaRuntime.now;
import static org.cobbzilla.wizard.resources.ResourceUtil.invalidEx;
import static org.hibernate.criterion.Restrictions.*;
@@ -26,6 +27,7 @@ public class FlexRouterDAO extends AccountOwnedEntityDAO<FlexRouter> {

@Override public FlexRouter postCreate(FlexRouter router, Object context) {
flexRouterService.register(router);
router.setHost_key(KNOWN_HOST_KEY);
return super.postCreate(router, context);
}

@@ -39,6 +41,7 @@ public class FlexRouterDAO extends AccountOwnedEntityDAO<FlexRouter> {

@Override public FlexRouter postUpdate(FlexRouter router, Object context) {
flexRouterService.register(router);
router.setHost_key(KNOWN_HOST_KEY);
return super.postUpdate(router, context);
}



+ 4
- 1
bubble-server/src/main/java/bubble/model/device/FlexRouter.java View File

@@ -35,7 +35,7 @@ import static org.cobbzilla.wizard.model.crypto.EncryptedTypes.ENC_PAD;
@ECIndexes({ @ECIndex(unique=true, of={"account", "ip"}) })
public class FlexRouter extends IdentifiableBase implements HasAccount {

public static final String[] UPDATE_FIELDS = { "enabled", "active", "auth_token", "token", "key" };
public static final String[] UPDATE_FIELDS = { "enabled", "active", "auth_token", "token", "key", "host_key" };
public static final String[] CREATE_FIELDS = ArrayUtil.append(UPDATE_FIELDS, "ip", "port");

public FlexRouter (FlexRouter other) { copy(this, other, CREATE_FIELDS); }
@@ -101,6 +101,9 @@ public class FlexRouter extends IdentifiableBase implements HasAccount {
@Transient @Getter @Setter private String auth_token;
public boolean hasAuthToken () { return !empty(auth_token); }

// used for sending the SSH host key to flexrouter
@Transient @Getter @Setter private String host_key;

public FlexRouterPing pingObject() { return new FlexRouterPing(this); }

}

+ 0
- 1
bubble-server/src/main/java/bubble/resources/device/FlexRoutersResource.java View File

@@ -74,7 +74,6 @@ public class FlexRoutersResource extends AccountOwnedResource<FlexRouter, FlexRo
throw invalidEx("err.port.cannotSetOrChange");
}
router.setActive(false);

return super.setReferences(ctx, req, caller, router);
}



Loading…
Cancel
Save