Browse Source

fix removal of trusted devices

tags/v0.17.0
Jonathan Cobb 4 years ago
parent
commit
4b9d7830a7
3 changed files with 17 additions and 3 deletions
  1. +11
    -1
      bubble-server/src/main/java/bubble/dao/account/TrustedClientDAO.java
  2. +4
    -0
      bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java
  3. +2
    -2
      bubble-server/src/test/resources/models/tests/auth/totp_auth.json

+ 11
- 1
bubble-server/src/main/java/bubble/dao/account/TrustedClientDAO.java View File

@@ -5,11 +5,12 @@
package bubble.dao.account;

import bubble.model.account.TrustedClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;

import static java.util.UUID.randomUUID;

@Repository
@Repository @Slf4j
public class TrustedClientDAO extends AccountOwnedEntityDAO<TrustedClient> {

@Override public Object preCreate(TrustedClient trusted) {
@@ -20,4 +21,13 @@ public class TrustedClientDAO extends AccountOwnedEntityDAO<TrustedClient> {
return findByUniqueFields("account", accountUuid, "device", deviceUuid);
}

public void deleteDevice(String uuid) {
final int count = bulkDelete("device", uuid);
if (count <= 1) {
log.info("deleteDevice: deleted "+count+" TrustedClient records for device "+uuid);
} else {
log.warn("deleteDevice: deleted "+count+" TrustedClient records (expected only 1) for device "+uuid);
}
}

}

+ 4
- 0
bubble-server/src/main/java/bubble/dao/device/DeviceDAO.java View File

@@ -6,6 +6,7 @@ package bubble.dao.device;

import bubble.dao.account.AccountDAO;
import bubble.dao.account.AccountOwnedEntityDAO;
import bubble.dao.account.TrustedClientDAO;
import bubble.dao.app.AppDataDAO;
import bubble.model.device.BubbleDeviceType;
import bubble.model.device.Device;
@@ -44,6 +45,7 @@ public class DeviceDAO extends AccountOwnedEntityDAO<Device> {

@Autowired private BubbleConfiguration configuration;
@Autowired private AppDataDAO dataDAO;
@Autowired private TrustedClientDAO trustDAO;
@Autowired private DeviceIdService deviceIdService;

@Override public Order getDefaultSortOrder() { return ORDER_CTIME_ASC; }
@@ -134,6 +136,7 @@ public class DeviceDAO extends AccountOwnedEntityDAO<Device> {
if (device.uninitialized()) die("Cannot delete special device: " + device.getName());

dataDAO.deleteDevice(uuid);
trustDAO.deleteDevice(uuid);
super.delete(uuid);
refreshVpnUsers();
}
@@ -141,6 +144,7 @@ public class DeviceDAO extends AccountOwnedEntityDAO<Device> {

@Override public void forceDelete(String uuid) {
dataDAO.deleteDevice(uuid);
trustDAO.deleteDevice(uuid);
super.delete(uuid);
refreshVpnUsers();
}


+ 2
- 2
bubble-server/src/test/resources/models/tests/auth/totp_auth.json View File

@@ -220,9 +220,9 @@
},

{
"comment": "remove trust for this device, succeeds",
"comment": "remove device, also removes trust, succeeds",
"request": {
"uri": "auth/trust/delete/{{device.uuid}}",
"uri": "me/devices/{{device.uuid}}",
"method": "delete"
}
},


Loading…
Cancel
Save