Browse Source

Merge pull request #5476 from thingsboard/lwm2m_bs_forbiden

lwm2m - authorization in Bootstrap session
pull/5249/head
Yevhen Bondarenko 5 years ago
committed by GitHub
parent
commit
1dada1526f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/bootstrap/secure/LwM2mDefaultBootstrapSessionManager.java

21
common/transport/lwm2m/src/main/java/org/thingsboard/server/transport/lwm2m/bootstrap/secure/LwM2mDefaultBootstrapSessionManager.java

@ -34,6 +34,7 @@ import org.eclipse.leshan.server.security.BootstrapSecurityStore;
import org.eclipse.leshan.server.security.SecurityChecker; import org.eclipse.leshan.server.security.SecurityChecker;
import org.eclipse.leshan.server.security.SecurityInfo; import org.eclipse.leshan.server.security.SecurityInfo;
import org.thingsboard.server.common.transport.TransportService; import org.thingsboard.server.common.transport.TransportService;
import org.thingsboard.server.transport.lwm2m.server.client.LwM2MAuthException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Iterator; import java.util.Iterator;
@ -79,17 +80,19 @@ public class LwM2mDefaultBootstrapSessionManager extends DefaultBootstrapSession
@Override @Override
public BootstrapSession begin(BootstrapRequest request, Identity clientIdentity) { public BootstrapSession begin(BootstrapRequest request, Identity clientIdentity) {
boolean authorized; boolean authorized = true;
Iterator<SecurityInfo> securityInfos; Iterator<SecurityInfo> securityInfos;
if (bsSecurityStore != null && securityChecker != null) { try {
if (clientIdentity.isSecure() && clientIdentity.isPSK()) { if (bsSecurityStore != null && securityChecker != null) {
securityInfos = bsSecurityStore.getAllByEndpoint(clientIdentity.getPskIdentity()); if (clientIdentity.isSecure() && clientIdentity.isPSK()) {
} else { securityInfos = bsSecurityStore.getAllByEndpoint(clientIdentity.getPskIdentity());
securityInfos = bsSecurityStore.getAllByEndpoint(request.getEndpointName()); } else {
securityInfos = bsSecurityStore.getAllByEndpoint(request.getEndpointName());
}
authorized = securityChecker.checkSecurityInfos(request.getEndpointName(), clientIdentity, securityInfos);
} }
authorized = securityChecker.checkSecurityInfos(request.getEndpointName(), clientIdentity, securityInfos); } catch (LwM2MAuthException e) {
} else { authorized = false;
authorized = true;
} }
DefaultBootstrapSession session = new DefaultBootstrapSession(request, clientIdentity, authorized); DefaultBootstrapSession session = new DefaultBootstrapSession(request, clientIdentity, authorized);
if (authorized) { if (authorized) {

Loading…
Cancel
Save