diff --git a/jams-server/build-ui.sh b/jams-server/build-ui.sh index b9ae29e53f591e2bbe255b942de6ef94bff95f7a..fdb7d78c1dfbdc487cefab6e3744619af11bfc28 100755 --- a/jams-server/build-ui.sh +++ b/jams-server/build-ui.sh @@ -1,8 +1,6 @@ #!/bin/bash #Build the UI from the react js folder. cd ../jams-react-client || exit -echo "Using Node version: " -nvm -v npm install npm run build #Now the UI is built we can exit and copy resource diff --git a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java index 8bb441d86d9bab88bc4bf761dd3383c27c45450a..6c8a79a26dfcd37d06db3fc31f17ab9d506608b2 100644 --- a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java +++ b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java @@ -24,22 +24,28 @@ package net.jami.jams.server.core.workflows; import com.jsoniter.JsonIterator; import lombok.extern.slf4j.Slf4j; + +import net.jami.jams.authmodule.UserAuthenticationModule; import net.jami.jams.common.authmodule.AuthModuleKey; import net.jami.jams.common.dao.StatementElement; import net.jami.jams.common.dao.StatementList; import net.jami.jams.common.objects.devices.Device; import net.jami.jams.common.objects.requests.DeviceRegistrationRequest; import net.jami.jams.common.objects.responses.DeviceRegistrationResponse; +import net.jami.jams.common.objects.roots.X509Fields; import net.jami.jams.common.objects.user.*; import net.jami.jams.dht.DeviceReceiptGenerator; import net.jami.jams.common.objects.user.Group; +import net.jami.jams.dht.ETHAddressGenerator; import java.security.cert.X509Certificate; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Optional; +import static net.jami.jams.authmodule.UserAuthenticationModule.datastore; import static net.jami.jams.server.Server.certificateAuthority; import static net.jami.jams.server.Server.dataStore; import static net.jami.jams.server.Server.nameServer; @@ -61,6 +67,13 @@ public class RegisterDeviceFlow { if (user == null) { log.error("Tried to enroll a device, but could not find a user, this is impossible!"); } + + // Renew user certificate if expired with same private key + if(!user.getCertificate().getNotAfter().after(new Date())) { + user = UserAuthenticationModule.certificateAuthority.getSignedCertificate(user); + datastore.getUserDao().storeObject(user); + } + Device device = new Device(); device.setCertificationRequest(registrationRequest.getCsr()); device.setOwner(username);