use of org.eclipse.leshan.server.bootstrap.BootstrapConfig in project leshan by eclipse.
the class BootstrapServlet method doPost.
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if (req.getPathInfo() == null) {
// we need the endpoint in the URL
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, "endpoint name should be specified in the URL");
return;
}
String[] path = StringUtils.split(req.getPathInfo(), '/');
// endPoint
if (path.length != 1) {
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, "endpoint name should be specified in the URL, nothing more");
return;
}
String endpoint = path[0];
try {
BootstrapConfig cfg = gson.fromJson(new InputStreamReader(req.getInputStream()), BootstrapConfig.class);
if (cfg == null) {
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, "no content");
} else {
bsStore.addConfig(endpoint, cfg);
resp.setStatus(HttpServletResponse.SC_OK);
}
} catch (JsonSyntaxException | ConfigurationException e) {
sendError(resp, HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
}
}
use of org.eclipse.leshan.server.bootstrap.BootstrapConfig in project leshan by eclipse.
the class BootstrapStoreImpl method loadFromFile.
// /////// File persistence
private void loadFromFile() {
try {
File file = new File(filename);
if (file.exists()) {
try (InputStreamReader in = new InputStreamReader(new FileInputStream(file))) {
Map<String, BootstrapConfig> config = gson.fromJson(in, gsonType);
bootstrapByEndpoint.putAll(config);
}
}
} catch (Exception e) {
LOG.error("Could not load bootstrap infos from file", e);
}
}
use of org.eclipse.leshan.server.bootstrap.BootstrapConfig in project leshan by eclipse.
the class LeshanBootstrapServerBuilderTest method start.
@Before
public void start() {
builder = new LeshanBootstrapServerBuilder();
builder.setConfigStore(new BootstrapStore() {
@Override
public BootstrapConfig getBootstrap(String endpoint) {
return null;
}
});
}
use of org.eclipse.leshan.server.bootstrap.BootstrapConfig in project leshan by eclipse.
the class BootstrapIntegrationTestHelper method createBootstrapServer.
public void createBootstrapServer(BootstrapSecurityStore securityStore) {
BootstrapStore bsStore = new BootstrapStore() {
@Override
public BootstrapConfig getBootstrap(String endpoint) {
BootstrapConfig bsConfig = new BootstrapConfig();
// security for BS server
ServerSecurity bsSecurity = new ServerSecurity();
bsSecurity.serverId = 1111;
bsSecurity.bootstrapServer = true;
bsSecurity.uri = "coap://" + bootstrapServer.getUnsecuredAddress().getHostString() + ":" + bootstrapServer.getUnsecuredAddress().getPort();
bsSecurity.securityMode = SecurityMode.NO_SEC;
bsConfig.security.put(0, bsSecurity);
// security for DM server
ServerSecurity dmSecurity = new ServerSecurity();
dmSecurity.uri = "coap://" + server.getUnsecuredAddress().getHostString() + ":" + server.getUnsecuredAddress().getPort();
dmSecurity.serverId = 2222;
dmSecurity.securityMode = SecurityMode.NO_SEC;
bsConfig.security.put(1, dmSecurity);
// DM server
ServerConfig dmConfig = new ServerConfig();
dmConfig.shortId = 2222;
bsConfig.servers.put(0, dmConfig);
return bsConfig;
}
};
if (securityStore == null) {
securityStore = dummyBsSecurityStore();
}
LeshanBootstrapServerBuilder builder = new LeshanBootstrapServerBuilder();
builder.setConfigStore(bsStore);
builder.setSecurityStore(securityStore);
builder.setLocalAddress(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0));
builder.setLocalSecureAddress(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0));
bootstrapServer = builder.build();
}
use of org.eclipse.leshan.server.bootstrap.BootstrapConfig in project leshan by eclipse.
the class BootstrapStoreImpl method deleteConfig.
public boolean deleteConfig(String enpoint) {
BootstrapConfig res = bootstrapByEndpoint.remove(enpoint);
saveToFile();
return res != null;
}
Aggregations