Lwm2m: front - fix bug /../../
This commit is contained in:
parent
cb3353a32d
commit
84698ad554
@ -245,8 +245,7 @@ public class LwM2MTransportBootstrapServerConfiguration {
|
|||||||
}
|
}
|
||||||
if (serverCertificate != null) {
|
if (serverCertificate != null) {
|
||||||
builder.setCertificateChain(new X509Certificate[]{serverCertificate});
|
builder.setCertificateChain(new X509Certificate[]{serverCertificate});
|
||||||
this.contextBs.getCtxBootStrap().setBootstrapCertificate(serverCertificate);
|
this.infoParamsX509(serverCertificate);
|
||||||
infoParamsX509(serverCertificate);
|
|
||||||
}
|
}
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
log.error("[{}] Unable to load KeyStore files server", ex.getMessage());
|
log.error("[{}] Unable to load KeyStore files server", ex.getMessage());
|
||||||
|
|||||||
@ -52,6 +52,7 @@ import java.security.KeyFactory;
|
|||||||
import java.security.KeyStoreException;
|
import java.security.KeyStoreException;
|
||||||
import java.security.PrivateKey;
|
import java.security.PrivateKey;
|
||||||
import java.security.PublicKey;
|
import java.security.PublicKey;
|
||||||
|
import java.security.cert.CertificateEncodingException;
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.security.interfaces.ECPublicKey;
|
import java.security.interfaces.ECPublicKey;
|
||||||
import java.security.spec.ECGenParameterSpec;
|
import java.security.spec.ECGenParameterSpec;
|
||||||
@ -306,8 +307,36 @@ public class LwM2MTransportServerConfiguration {
|
|||||||
PrivateKey privateKey = (PrivateKey) this.context.getCtxServer().getKeyStoreValue().getKey(this.context.getCtxServer().getServerAlias(), this.context.getCtxServer().getKeyStorePasswordServer() == null ? null : this.context.getCtxServer().getKeyStorePasswordServer().toCharArray());
|
PrivateKey privateKey = (PrivateKey) this.context.getCtxServer().getKeyStoreValue().getKey(this.context.getCtxServer().getServerAlias(), this.context.getCtxServer().getKeyStorePasswordServer() == null ? null : this.context.getCtxServer().getKeyStorePasswordServer().toCharArray());
|
||||||
builder.setPrivateKey(privateKey);
|
builder.setPrivateKey(privateKey);
|
||||||
builder.setCertificateChain(new X509Certificate[]{serverCertificate});
|
builder.setCertificateChain(new X509Certificate[]{serverCertificate});
|
||||||
|
this.infoParamsX509(serverCertificate, privateKey);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
log.error("[{}] Unable to load KeyStore files server", ex.getMessage());
|
log.error("[{}] Unable to load KeyStore files server", ex.getMessage());
|
||||||
}
|
}
|
||||||
|
// /**
|
||||||
|
// * For deb => KeyStorePathFile == yml or commandline: KEY_STORE_PATH_FILE
|
||||||
|
// * For idea => KeyStorePathResource == common/transport/lwm2m/src/main/resources/credentials: in LwM2MTransportContextServer: credentials/serverKeyStore.jks
|
||||||
|
// */
|
||||||
|
// try {
|
||||||
|
// X509Certificate serverCertificate = (X509Certificate) this.context.getCtxServer().getKeyStoreValue().getCertificate(this.context.getCtxServer().getServerPrivateS());
|
||||||
|
// this.privateKey = (PrivateKey) this.context.getCtxServer().getKeyStoreValue().getKey(this.context.getCtxServer().getServerAlias(), this.context.getCtxServer().getKeyStorePasswordServer() == null ? null : this.context.getCtxServer().getKeyStorePasswordServer().toCharArray());
|
||||||
|
// if (this.privateKey != null && this.privateKey.getEncoded().length > 0) {
|
||||||
|
// builder.setPrivateKey(this.privateKey);
|
||||||
|
// }
|
||||||
|
// if (serverCertificate != null) {
|
||||||
|
// builder.setCertificateChain(new X509Certificate[]{serverCertificate});
|
||||||
|
// this.infoParamsX509(serverCertificate);
|
||||||
|
// }
|
||||||
|
// } catch (Exception ex) {
|
||||||
|
// log.error("[{}] Unable to load KeyStore files server", ex.getMessage());
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
private void infoParamsX509(X509Certificate certificate, PrivateKey privateKey) {
|
||||||
|
try {
|
||||||
|
log.info("Server uses X509 : \n X509 Certificate (Hex): [{}] \n Private Key (Hex): [{}]",
|
||||||
|
Hex.encodeHexString(certificate.getEncoded()),
|
||||||
|
Hex.encodeHexString(privateKey.getEncoded()));
|
||||||
|
} catch (CertificateEncodingException e) {
|
||||||
|
log.error("", e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@ -16,6 +16,9 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
# source the properties:
|
# source the properties:
|
||||||
|
script_dir=$(dirname $0)
|
||||||
|
echo "script_dir: $script_dir"
|
||||||
|
cd $script_dir
|
||||||
. ./lwM2M_keygen.properties
|
. ./lwM2M_keygen.properties
|
||||||
|
|
||||||
# Generation of the keystore.
|
# Generation of the keystore.
|
||||||
|
|||||||
@ -43,7 +43,7 @@ CLIENT_STORE=clientKeyStore.jks
|
|||||||
CLIENT_STORE_PWD=client_ks_password
|
CLIENT_STORE_PWD=client_ks_password
|
||||||
CLIENT_ALIAS=client
|
CLIENT_ALIAS=client
|
||||||
#CLIENT_CN=client_lwm2m_x509
|
#CLIENT_CN=client_lwm2m_x509
|
||||||
CLIENT_CN=mobile_lwm2m_x509
|
CLIENT_CN=LwX50900000000
|
||||||
CLIENT_SELF_ALIAS=client_self_signed
|
CLIENT_SELF_ALIAS=client_self_signed
|
||||||
CLIENT_SELF_CN="$DOMAIN_SUFFIX client LwM2M self-signed"
|
CLIENT_SELF_CN="$DOMAIN_SUFFIX client LwM2M self-signed"
|
||||||
|
|
||||||
|
|||||||
@ -24,7 +24,6 @@ import org.springframework.stereotype.Component;
|
|||||||
import org.thingsboard.server.gen.transport.TransportProtos;
|
import org.thingsboard.server.gen.transport.TransportProtos;
|
||||||
|
|
||||||
import java.security.PublicKey;
|
import java.security.PublicKey;
|
||||||
import java.security.cert.X509Certificate;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ -104,10 +103,6 @@ public class LwM2MTransportConfigBootstrap {
|
|||||||
@Value("${transport.lwm2m.bootstrap.secure.alias:}")
|
@Value("${transport.lwm2m.bootstrap.secure.alias:}")
|
||||||
private String bootstrapAlias;
|
private String bootstrapAlias;
|
||||||
|
|
||||||
@Getter
|
|
||||||
@Setter
|
|
||||||
private X509Certificate bootstrapCertificate;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
private Map<String /** clientEndPoint */, TransportProtos.ValidateDeviceCredentialsResponseMsg> sessions;
|
private Map<String /** clientEndPoint */, TransportProtos.ValidateDeviceCredentialsResponseMsg> sessions;
|
||||||
|
|||||||
@ -233,7 +233,7 @@ public class LwM2MTransportConfigServer {
|
|||||||
} else {
|
} else {
|
||||||
log.error(" [{}] Read Models", path.getAbsoluteFile());
|
log.error(" [{}] Read Models", path.getAbsoluteFile());
|
||||||
}
|
}
|
||||||
getInKeyStore();
|
this.getInKeyStore();
|
||||||
}
|
}
|
||||||
|
|
||||||
private File getPathModels() {
|
private File getPathModels() {
|
||||||
|
|||||||
Binary file not shown.
@ -36,7 +36,7 @@ import {
|
|||||||
import { Store } from "@ngrx/store";
|
import { Store } from "@ngrx/store";
|
||||||
import { AppState } from "@core/core.state";
|
import { AppState } from "@core/core.state";
|
||||||
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
||||||
import { WINDOW } from "../../../../../../core/services/window.service";
|
import { WINDOW } from "@core/services/window.service";
|
||||||
import { pairwise, startWith } from 'rxjs/operators';
|
import { pairwise, startWith } from 'rxjs/operators';
|
||||||
import { DeviceProfileService } from '@core/http/device-profile.service';
|
import { DeviceProfileService } from '@core/http/device-profile.service';
|
||||||
|
|
||||||
|
|||||||
@ -35,9 +35,9 @@ import {
|
|||||||
TELEMETRY,
|
TELEMETRY,
|
||||||
ObjectLwM2M, getDefaultProfileConfig, KEY_NAME, Instance
|
ObjectLwM2M, getDefaultProfileConfig, KEY_NAME, Instance
|
||||||
} from "./profile-config.models";
|
} from "./profile-config.models";
|
||||||
import { DeviceProfileService } from "../../../../../../core/http/device-profile.service";
|
import { DeviceProfileService } from "@core/http/device-profile.service";
|
||||||
import { deepClone, isUndefined } from "../../../../../../core/utils";
|
import { deepClone, isUndefined } from "@core/utils";
|
||||||
import { WINDOW } from "../../../../../../core/services/window.service";
|
import { WINDOW } from "@core/services/window.service";
|
||||||
import { JsonObject } from '@angular/compiler-cli/ngcc/src/packages/entry_point';
|
import { JsonObject } from '@angular/compiler-cli/ngcc/src/packages/entry_point';
|
||||||
import { isNotNullOrUndefined } from 'codelyzer/util/isNotNullOrUndefined';
|
import { isNotNullOrUndefined } from 'codelyzer/util/isNotNullOrUndefined';
|
||||||
|
|
||||||
|
|||||||
@ -30,14 +30,14 @@ import {
|
|||||||
} from "@angular/forms";
|
} from "@angular/forms";
|
||||||
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
import { coerceBooleanProperty } from "@angular/cdk/coercion";
|
||||||
import { Store } from "@ngrx/store";
|
import { Store } from "@ngrx/store";
|
||||||
import { AppState } from "../../../../../../core/core.state";
|
import { AppState } from "@core/core.state";
|
||||||
import { MatChipList } from '@angular/material/chips';
|
import { MatChipList } from '@angular/material/chips';
|
||||||
import {
|
import {
|
||||||
INSTANCES_ID_VALUE_MAX,
|
INSTANCES_ID_VALUE_MAX,
|
||||||
INSTANCES_ID_VALUE_MIN
|
INSTANCES_ID_VALUE_MIN
|
||||||
} from "./profile-config.models";
|
} from "./profile-config.models";
|
||||||
import { TranslateService } from "@ngx-translate/core";
|
import { TranslateService } from "@ngx-translate/core";
|
||||||
import { DeviceProfileService } from "../../../../../../core/http/device-profile.service";
|
import { DeviceProfileService } from "@core/http/device-profile.service";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tb-profile-lwm2m-object-add-instances-list',
|
selector: 'tb-profile-lwm2m-object-add-instances-list',
|
||||||
|
|||||||
@ -32,16 +32,16 @@ import {
|
|||||||
} from "@angular/forms";
|
} from "@angular/forms";
|
||||||
import {coerceBooleanProperty} from "@angular/cdk/coercion";
|
import {coerceBooleanProperty} from "@angular/cdk/coercion";
|
||||||
import {Store} from "@ngrx/store";
|
import {Store} from "@ngrx/store";
|
||||||
import {AppState} from "../../../../../../core/core.state";
|
import {AppState} from "@core/core.state";
|
||||||
import {MatChipList} from '@angular/material/chips';
|
import {MatChipList} from '@angular/material/chips';
|
||||||
import {MatAutocomplete} from "@angular/material/autocomplete";
|
import {MatAutocomplete} from "@angular/material/autocomplete";
|
||||||
import {Observable} from "rxjs";
|
import {Observable} from "rxjs";
|
||||||
import {filter, map, mergeMap, share, tap} from 'rxjs/operators';
|
import {filter, map, mergeMap, share, tap} from 'rxjs/operators';
|
||||||
import {ObjectLwM2M} from "./profile-config.models";
|
import {ObjectLwM2M} from "./profile-config.models";
|
||||||
import {TranslateService} from "@ngx-translate/core";
|
import {TranslateService} from "@ngx-translate/core";
|
||||||
import {DeviceProfileService} from "../../../../../../core/http/device-profile.service";
|
import {DeviceProfileService} from "@core/http/device-profile.service";
|
||||||
import {PageLink} from "../../../../../../shared/models/page/page-link";
|
import {PageLink} from "@shared/models/page/page-link";
|
||||||
import {Direction} from "../../../../../../shared/models/page/sort-order";
|
import {Direction} from "@shared/models/page/sort-order";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'tb-profile-lwm2m-object-list',
|
selector: 'tb-profile-lwm2m-object-list',
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user