Skip to content

Commit

Permalink
Use new endpoints provider API in BS server and server demos/tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sbernard31 committed Mar 8, 2023
1 parent 95b344d commit cc9f41d
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 60 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,12 @@
import java.io.File;
import java.io.PrintWriter;
import java.net.InetSocketAddress;
import java.net.URI;
import java.security.cert.Certificate;
import java.util.List;

import org.eclipse.californium.core.config.CoapConfig;
import org.eclipse.californium.elements.config.Configuration;
import org.eclipse.californium.scandium.config.DtlsConfig;
import org.eclipse.californium.scandium.config.DtlsConnectorConfig.Builder;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
Expand All @@ -45,12 +43,9 @@
import org.eclipse.leshan.server.bootstrap.demo.servlet.BootstrapServlet;
import org.eclipse.leshan.server.bootstrap.demo.servlet.EventServlet;
import org.eclipse.leshan.server.bootstrap.demo.servlet.ServerServlet;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.BootstrapServerProtocolProvider;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.CaliforniumBootstrapServerEndpointFactory;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.CaliforniumBootstrapServerEndpointsProvider;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.coap.CoapBootstrapServerProtocolProvider;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.coap.CoapOscoreBootstrapServerEndpointFactory;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.coaps.CoapsBootstrapServerEndpointFactory;
import org.eclipse.leshan.server.californium.bootstrap.endpoint.coaps.CoapsBootstrapServerProtocolProvider;
import org.eclipse.leshan.server.core.demo.json.servlet.SecurityServlet;
import org.eclipse.leshan.server.model.VersionedBootstrapModelProvider;
Expand Down Expand Up @@ -149,29 +144,18 @@ public static LeshanBootstrapServer createBsLeshanServer(LeshanBsServerDemoCLI c

// Create Californium Endpoints Provider:
// ------------------
// Create Custom CoAPS protocol provider to add MDC logger :
BootstrapServerProtocolProvider coapsProtocolProvider = new CoapsBootstrapServerProtocolProvider() {
@Override
public CaliforniumBootstrapServerEndpointFactory createDefaultEndpointFactory(URI uri) {
return new CoapsBootstrapServerEndpointFactory(uri) {

@Override
protected Builder createDtlsConnectorConfigBuilder(Configuration configuration) {
Builder dtlsConfigBuilder = super.createDtlsConnectorConfigBuilder(configuration);

// Add MDC for connection logs
if (cli.helpsOptions.getVerboseLevel() > 0)
dtlsConfigBuilder.setConnectionListener(new PrincipalMdcConnectionListener());

return dtlsConfigBuilder;
}
};
}
};

// Create Bootstrap Server Endpoints Provider
CaliforniumBootstrapServerEndpointsProvider.Builder endpointsBuilder = new CaliforniumBootstrapServerEndpointsProvider.Builder(
new CoapBootstrapServerProtocolProvider(), coapsProtocolProvider);
// Add coap Protocol support
new CoapBootstrapServerProtocolProvider(),

// Add coaps protocol support
new CoapsBootstrapServerProtocolProvider(c -> {
// Add MDC for connection logs
if (cli.helpsOptions.getVerboseLevel() > 0)
c.setConnectionListener(new PrincipalMdcConnectionListener());

}));

// Create Californium Configuration
Configuration serverCoapConfig = endpointsBuilder.createDefaultConfiguration();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import java.security.spec.InvalidParameterSpecException;
import java.security.spec.KeySpec;

import org.eclipse.californium.elements.config.Configuration;
import org.eclipse.californium.scandium.config.DtlsConfig;
import org.eclipse.californium.scandium.dtls.cipher.CipherSuite;
import org.eclipse.leshan.core.endpoint.Protocol;
Expand Down Expand Up @@ -140,9 +139,9 @@ public void create_server_with_coaps_only() {
public void create_server_without_psk_cipher() {
Builder endpointsBuilder = new CaliforniumServerEndpointsProvider.Builder(new CoapsServerProtocolProvider());

Configuration coapConfiguration = endpointsBuilder.createDefaultConfiguration();
coapConfiguration.setAsList(DtlsConfig.DTLS_CIPHER_SUITES, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8);
endpointsBuilder.setConfiguration(coapConfiguration);
endpointsBuilder.setConfiguration(c -> {
c.setAsList(DtlsConfig.DTLS_CIPHER_SUITES, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8);
});

builder.setPrivateKey(privateKey);
builder.setPublicKey(publicKey);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
import java.security.spec.KeySpec;
import java.util.Iterator;

import org.eclipse.californium.elements.config.Configuration;
import org.eclipse.californium.scandium.config.DtlsConfig;
import org.eclipse.californium.scandium.dtls.cipher.CipherSuite;
import org.eclipse.leshan.core.endpoint.Protocol;
Expand Down Expand Up @@ -186,9 +185,9 @@ public SecurityInfo getByOscoreIdentity(OscoreIdentity oscoreIdentity) {
public void create_server_without_psk_cipher() {
Builder endpointsBuilder = new CaliforniumBootstrapServerEndpointsProvider.Builder(
new CoapsBootstrapServerProtocolProvider());
Configuration coapConfiguration = endpointsBuilder.createDefaultConfiguration();
coapConfiguration.setAsList(DtlsConfig.DTLS_CIPHER_SUITES, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8);
endpointsBuilder.setConfiguration(coapConfiguration);
endpointsBuilder.setConfiguration(c -> {
c.setAsList(DtlsConfig.DTLS_CIPHER_SUITES, CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8);
});
builder.setEndpointsProvider(endpointsBuilder.build());

builder.setPrivateKey(privateKey);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.URI;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.util.List;
Expand All @@ -34,7 +33,6 @@
import org.eclipse.californium.elements.util.CertPathUtil;
import org.eclipse.californium.scandium.config.DtlsConfig;
import org.eclipse.californium.scandium.config.DtlsConfig.DtlsRole;
import org.eclipse.californium.scandium.config.DtlsConnectorConfig.Builder;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
Expand All @@ -47,12 +45,9 @@
import org.eclipse.leshan.core.model.ObjectModel;
import org.eclipse.leshan.server.LeshanServer;
import org.eclipse.leshan.server.LeshanServerBuilder;
import org.eclipse.leshan.server.californium.endpoint.CaliforniumServerEndpointFactory;
import org.eclipse.leshan.server.californium.endpoint.CaliforniumServerEndpointsProvider;
import org.eclipse.leshan.server.californium.endpoint.ServerProtocolProvider;
import org.eclipse.leshan.server.californium.endpoint.coap.CoapOscoreServerEndpointFactory;
import org.eclipse.leshan.server.californium.endpoint.coap.CoapServerProtocolProvider;
import org.eclipse.leshan.server.californium.endpoint.coaps.CoapsServerEndpointFactory;
import org.eclipse.leshan.server.californium.endpoint.coaps.CoapsServerProtocolProvider;
import org.eclipse.leshan.server.core.demo.json.servlet.SecurityServlet;
import org.eclipse.leshan.server.demo.cli.LeshanServerDemoCLI;
Expand Down Expand Up @@ -183,29 +178,18 @@ public static LeshanServer createLeshanServer(LeshanServerDemoCLI cli) throws Ex

// Create Californium Endpoints Provider:
// ------------------
// Create Custom CoAPS protocol provider to add MDC logger :
ServerProtocolProvider coapsProtocolProvider = new CoapsServerProtocolProvider() {
@Override
public CaliforniumServerEndpointFactory createDefaultEndpointFactory(URI uri) {
return new CoapsServerEndpointFactory(uri) {

@Override
protected Builder createDtlsConnectorConfigBuilder(Configuration endpointConfiguration) {
Builder dtlsConfigBuilder = super.createDtlsConnectorConfigBuilder(endpointConfiguration);

// Add MDC for connection logs
if (cli.helpsOptions.getVerboseLevel() > 0)
dtlsConfigBuilder.setConnectionListener(new PrincipalMdcConnectionListener());

return dtlsConfigBuilder;
}
};
}
};

// Create Server Endpoints Provider
CaliforniumServerEndpointsProvider.Builder endpointsBuilder = new CaliforniumServerEndpointsProvider.Builder(
new CoapServerProtocolProvider(), coapsProtocolProvider);
// Add coap Protocol support
new CoapServerProtocolProvider(),

// Add coaps protocol support
new CoapsServerProtocolProvider(c -> {
// Add MDC for connection logs
if (cli.helpsOptions.getVerboseLevel() > 0)
c.setConnectionListener(new PrincipalMdcConnectionListener());

}));

// Create Californium Configuration
Configuration serverCoapConfig = endpointsBuilder.createDefaultConfiguration();
Expand Down

0 comments on commit cc9f41d

Please sign in to comment.