mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Merge branch 'master' of https://github.com/wso2/carbon-device-mgt
This commit is contained in:
commit
dbf8d13ced
@ -150,4 +150,11 @@ public interface DeviceManager {
|
|||||||
|
|
||||||
void addLicense(License license) throws LicenseManagementException;
|
void addLicense(License license) throws LicenseManagementException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method to enable to device-authentication for the device-platform.
|
||||||
|
*
|
||||||
|
* @return Returns boolean status to enable or disable device-authentication.
|
||||||
|
*/
|
||||||
|
boolean requireDeviceAuthorization();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -49,7 +49,9 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
/* Initializing Device Management Service Provider */
|
/* Initializing Device Management Service Provider */
|
||||||
provider.init();
|
provider.init();
|
||||||
DeviceManagerUtil.registerDeviceType(deviceType);
|
DeviceManagerUtil.registerDeviceType(deviceType);
|
||||||
DeviceManagementDataHolder.getInstance().setIsUserLevelAutherizationAllow(provider.getType(),true);
|
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(deviceType,
|
||||||
|
provider.getDeviceManager().requireDeviceAuthorization());
|
||||||
|
|
||||||
}
|
}
|
||||||
} catch (DeviceManagementException e) {
|
} catch (DeviceManagementException e) {
|
||||||
throw new DeviceManagementException("Error occurred while adding device management provider '" +
|
throw new DeviceManagementException("Error occurred while adding device management provider '" +
|
||||||
@ -83,7 +85,8 @@ public class DeviceManagementPluginRepository implements DeviceManagerStartupLis
|
|||||||
//windows and IOS cannot resolve user info by extracting certs
|
//windows and IOS cannot resolve user info by extracting certs
|
||||||
//until fix that, use following variable to enable and disable of checking user authorization.
|
//until fix that, use following variable to enable and disable of checking user authorization.
|
||||||
|
|
||||||
DeviceManagementDataHolder.getInstance().setIsUserLevelAutherizationAllow(provider.getType(),true);
|
DeviceManagementDataHolder.getInstance().setRequireDeviceAuthorization(provider.getType(),
|
||||||
|
provider.getDeviceManager().requireDeviceAuthorization());
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
|
/* Throwable is caught intentionally as failure of one plugin - due to invalid start up parameters,
|
||||||
etc - should not block the initialization of other device management providers */
|
etc - should not block the initialization of other device management providers */
|
||||||
|
|||||||
@ -20,11 +20,8 @@ package org.wso2.carbon.device.mgt.core.authorization;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
import org.wso2.carbon.context.CarbonContext;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
|
||||||
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
|
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationException;
|
||||||
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
|
import org.wso2.carbon.device.mgt.common.authorization.DeviceAccessAuthorizationService;
|
||||||
import org.wso2.carbon.device.mgt.common.authorization.DeviceAuthorizationResult;
|
import org.wso2.carbon.device.mgt.common.authorization.DeviceAuthorizationResult;
|
||||||
@ -34,7 +31,6 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
|||||||
import org.wso2.carbon.device.mgt.core.permission.mgt.PermissionUtils;
|
import org.wso2.carbon.device.mgt.core.permission.mgt.PermissionUtils;
|
||||||
import org.wso2.carbon.user.api.UserRealm;
|
import org.wso2.carbon.user.api.UserRealm;
|
||||||
import org.wso2.carbon.user.api.UserStoreException;
|
import org.wso2.carbon.user.api.UserStoreException;
|
||||||
import org.wso2.carbon.utils.multitenancy.MultitenantUtils;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -74,7 +70,7 @@ public class DeviceAccessAuthorizationServiceImpl implements DeviceAccessAuthori
|
|||||||
String username = this.getUserName();
|
String username = this.getUserName();
|
||||||
int tenantId = this.getTenantId();
|
int tenantId = this.getTenantId();
|
||||||
if (username == null || username.isEmpty()) {
|
if (username == null || username.isEmpty()) {
|
||||||
return false;
|
return !DeviceManagementDataHolder.getInstance().requireDeviceAuthorization(deviceIdentifier.getType());
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
//Check for admin users. If the user is an admin user we authorize the access to that device.
|
//Check for admin users. If the user is an admin user we authorize the access to that device.
|
||||||
@ -226,16 +222,19 @@ public class DeviceAccessAuthorizationServiceImpl implements DeviceAccessAuthori
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getUserName() {
|
private String getUserName() {
|
||||||
String username = PrivilegedCarbonContext.getThreadLocalCarbonContext().getUsername();
|
String username = CarbonContext.getThreadLocalCarbonContext().getUsername();
|
||||||
String tenantDomain = MultitenantUtils.getTenantDomain(username);
|
if (username != null && !username.isEmpty()) {
|
||||||
if (username.endsWith(tenantDomain)) {
|
String tenantDomain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain();
|
||||||
return username.substring(0, username.lastIndexOf("@"));
|
if (username.endsWith(tenantDomain)) {
|
||||||
|
return username.substring(0, username.lastIndexOf("@"));
|
||||||
|
}
|
||||||
|
return username;
|
||||||
}
|
}
|
||||||
return username;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getTenantId() {
|
private int getTenantId() {
|
||||||
return PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
return CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean addAdminPermissionToRegistry() throws PermissionManagementException {
|
private boolean addAdminPermissionToRegistry() throws PermissionManagementException {
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public interface ApplicationMappingDAO {
|
|||||||
|
|
||||||
int addApplicationMapping(int deviceId, int applicationId, int tenantId) throws DeviceManagementDAOException;
|
int addApplicationMapping(int deviceId, int applicationId, int tenantId) throws DeviceManagementDAOException;
|
||||||
|
|
||||||
List<Integer> addApplicationMappings(int deviceId, List<Integer> applicationIds, int tenantId)
|
void addApplicationMappings(int deviceId, List<Integer> applicationIds, int tenantId)
|
||||||
throws DeviceManagementDAOException;
|
throws DeviceManagementDAOException;
|
||||||
|
|
||||||
void removeApplicationMapping(int deviceId, List<Integer> appIdList, int tenantId)
|
void removeApplicationMapping(int deviceId, List<Integer> appIdList, int tenantId)
|
||||||
|
|||||||
@ -46,7 +46,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "INSERT INTO DM_DEVICE(DESCRIPTION, NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, TENANT_ID) " +
|
String sql = "INSERT INTO DM_DEVICE(DESCRIPTION, NAME, DEVICE_TYPE_ID, DEVICE_IDENTIFICATION, TENANT_ID) " +
|
||||||
"VALUES (?, ?, ?, ?, ?)";
|
"VALUES (?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setString(1, device.getDescription());
|
stmt.setString(1, device.getDescription());
|
||||||
stmt.setString(2, device.getName());
|
stmt.setString(2, device.getName());
|
||||||
stmt.setInt(3, typeId);
|
stmt.setInt(3, typeId);
|
||||||
@ -77,7 +77,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "UPDATE DM_DEVICE SET DESCRIPTION = ?, NAME = ? WHERE DEVICE_IDENTIFICATION = ? AND " +
|
String sql = "UPDATE DM_DEVICE SET DESCRIPTION = ?, NAME = ? WHERE DEVICE_IDENTIFICATION = ? AND " +
|
||||||
"DEVICE_TYPE_ID = ? AND TENANT_ID = ?";
|
"DEVICE_TYPE_ID = ? AND TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setString(1, device.getDescription());
|
stmt.setString(1, device.getDescription());
|
||||||
stmt.setString(2, device.getName());
|
stmt.setString(2, device.getName());
|
||||||
stmt.setString(3, device.getDeviceIdentifier());
|
stmt.setString(3, device.getDeviceIdentifier());
|
||||||
@ -433,7 +433,7 @@ public abstract class AbstractDeviceDAOImpl implements DeviceDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "INSERT INTO DM_ENROLMENT(DEVICE_ID, OWNER, OWNERSHIP, STATUS,DATE_OF_ENROLMENT, " +
|
String sql = "INSERT INTO DM_ENROLMENT(DEVICE_ID, OWNER, OWNERSHIP, STATUS,DATE_OF_ENROLMENT, " +
|
||||||
"DATE_OF_LAST_UPDATE, TENANT_ID) VALUES(?, ?, ?, ?, ?, ?, ?)";
|
"DATE_OF_LAST_UPDATE, TENANT_ID) VALUES(?, ?, ?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setInt(1, device.getId());
|
stmt.setInt(1, device.getId());
|
||||||
stmt.setString(2, device.getEnrolmentInfo().getOwner());
|
stmt.setString(2, device.getEnrolmentInfo().getOwner());
|
||||||
stmt.setString(3, device.getEnrolmentInfo().getOwnership().toString());
|
stmt.setString(3, device.getEnrolmentInfo().getOwnership().toString());
|
||||||
|
|||||||
@ -86,7 +86,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, CATEGORY, " +
|
stmt = conn.prepareStatement("INSERT INTO DM_APPLICATION (NAME, PLATFORM, CATEGORY, " +
|
||||||
"VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID,APP_PROPERTIES,APP_IDENTIFIER) " +
|
"VERSION, TYPE, LOCATION_URL, IMAGE_URL, TENANT_ID,APP_PROPERTIES,APP_IDENTIFIER) " +
|
||||||
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,?)", PreparedStatement.RETURN_GENERATED_KEYS);
|
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?,?)", new String[] {"id"});
|
||||||
|
|
||||||
|
|
||||||
for (Application application : applications) {
|
for (Application application : applications) {
|
||||||
@ -126,7 +126,7 @@ public class ApplicationDAOImpl implements ApplicationDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
conn.setAutoCommit(false);
|
conn.setAutoCommit(false);
|
||||||
stmt = conn.prepareStatement("DELETE DM_APPLICATION WHERE APP_IDENTIFIER = ? AND TENANT_ID = ?",
|
stmt = conn.prepareStatement("DELETE DM_APPLICATION WHERE APP_IDENTIFIER = ? AND TENANT_ID = ?",
|
||||||
Statement.RETURN_GENERATED_KEYS);
|
new String[] {"id"});
|
||||||
|
|
||||||
for (Application app : apps) {
|
for (Application app : apps) {
|
||||||
stmt.setString(1, app.getApplicationIdentifier());
|
stmt.setString(1, app.getApplicationIdentifier());
|
||||||
|
|||||||
@ -49,7 +49,7 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "INSERT INTO DM_DEVICE_APPLICATION_MAPPING (DEVICE_ID, APPLICATION_ID, " +
|
String sql = "INSERT INTO DM_DEVICE_APPLICATION_MAPPING (DEVICE_ID, APPLICATION_ID, " +
|
||||||
"TENANT_ID) VALUES (?, ?, ?)";
|
"TENANT_ID) VALUES (?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setInt(2, applicationId);
|
stmt.setInt(2, applicationId);
|
||||||
stmt.setInt(3, tenantId);
|
stmt.setInt(3, tenantId);
|
||||||
@ -68,17 +68,17 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Integer> addApplicationMappings(int deviceId, List<Integer> applicationIds,
|
public void addApplicationMappings(int deviceId, List<Integer> applicationIds,
|
||||||
int tenantId) throws DeviceManagementDAOException {
|
int tenantId) throws DeviceManagementDAOException {
|
||||||
Connection conn;
|
Connection conn;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet rs = null;
|
ResultSet rs = null;
|
||||||
List<Integer> mappingIds = new ArrayList<>();
|
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "INSERT INTO DM_DEVICE_APPLICATION_MAPPING (DEVICE_ID, APPLICATION_ID, " +
|
String sql = "INSERT INTO DM_DEVICE_APPLICATION_MAPPING (DEVICE_ID, APPLICATION_ID, " +
|
||||||
"TENANT_ID) VALUES (?, ?, ?)";
|
"TENANT_ID) VALUES (?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql);
|
||||||
|
|
||||||
for (int applicationId : applicationIds) {
|
for (int applicationId : applicationIds) {
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
@ -88,11 +88,11 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
}
|
}
|
||||||
stmt.executeBatch();
|
stmt.executeBatch();
|
||||||
|
|
||||||
rs = stmt.getGeneratedKeys();
|
// rs = stmt.getGeneratedKeys();
|
||||||
while (rs.next()) {
|
// while (rs.next()) {
|
||||||
mappingIds.add(rs.getInt(1));
|
// mappingIds.add(rs.getInt(1));
|
||||||
}
|
// }
|
||||||
return mappingIds;
|
// return mappingIds;
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new DeviceManagementDAOException("Error occurred while adding device application mappings", e);
|
throw new DeviceManagementDAOException("Error occurred while adding device application mappings", e);
|
||||||
} finally {
|
} finally {
|
||||||
@ -109,7 +109,7 @@ public class ApplicationMappingDAOImpl implements ApplicationMappingDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "DELETE DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ? AND " +
|
String sql = "DELETE DM_DEVICE_APPLICATION_MAPPING WHERE DEVICE_ID = ? AND " +
|
||||||
"APPLICATION_ID = ? AND TENANT_ID = ?";
|
"APPLICATION_ID = ? AND TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql);
|
||||||
|
|
||||||
for (Integer appId : appIdList) {
|
for (Integer appId : appIdList) {
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
|
|||||||
@ -42,7 +42,7 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "INSERT INTO DM_ENROLMENT(DEVICE_ID, OWNER, OWNERSHIP, STATUS, " +
|
String sql = "INSERT INTO DM_ENROLMENT(DEVICE_ID, OWNER, OWNERSHIP, STATUS, " +
|
||||||
"DATE_OF_ENROLMENT, DATE_OF_LAST_UPDATE, TENANT_ID) VALUES(?, ?, ?, ?, ?, ?, ?)";
|
"DATE_OF_ENROLMENT, DATE_OF_LAST_UPDATE, TENANT_ID) VALUES(?, ?, ?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setString(2, enrolmentInfo.getOwner());
|
stmt.setString(2, enrolmentInfo.getOwner());
|
||||||
stmt.setString(3, enrolmentInfo.getOwnership().toString());
|
stmt.setString(3, enrolmentInfo.getOwnership().toString());
|
||||||
@ -76,7 +76,7 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
|
|||||||
String sql = "UPDATE DM_ENROLMENT SET OWNERSHIP = ?, STATUS = ?, " +
|
String sql = "UPDATE DM_ENROLMENT SET OWNERSHIP = ?, STATUS = ?, " +
|
||||||
"DATE_OF_ENROLMENT = ?, DATE_OF_LAST_UPDATE = ? WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?" +
|
"DATE_OF_ENROLMENT = ?, DATE_OF_LAST_UPDATE = ? WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?" +
|
||||||
" AND ID = ?";
|
" AND ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setString(1, enrolmentInfo.getOwnership().toString());
|
stmt.setString(1, enrolmentInfo.getOwnership().toString());
|
||||||
stmt.setString(2, enrolmentInfo.getStatus().toString());
|
stmt.setString(2, enrolmentInfo.getStatus().toString());
|
||||||
stmt.setTimestamp(3, new Timestamp(enrolmentInfo.getDateOfEnrolment()));
|
stmt.setTimestamp(3, new Timestamp(enrolmentInfo.getDateOfEnrolment()));
|
||||||
@ -109,7 +109,7 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "UPDATE DM_ENROLMENT SET OWNERSHIP = ?, STATUS = ?, " +
|
String sql = "UPDATE DM_ENROLMENT SET OWNERSHIP = ?, STATUS = ?, " +
|
||||||
"DATE_OF_ENROLMENT = ?, DATE_OF_LAST_UPDATE = ? WHERE ID = ?";
|
"DATE_OF_ENROLMENT = ?, DATE_OF_LAST_UPDATE = ? WHERE ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setString(1, enrolmentInfo.getOwnership().toString());
|
stmt.setString(1, enrolmentInfo.getOwnership().toString());
|
||||||
stmt.setString(2, enrolmentInfo.getStatus().toString());
|
stmt.setString(2, enrolmentInfo.getStatus().toString());
|
||||||
stmt.setTimestamp(3, new Timestamp(enrolmentInfo.getDateOfEnrolment()));
|
stmt.setTimestamp(3, new Timestamp(enrolmentInfo.getDateOfEnrolment()));
|
||||||
@ -140,7 +140,7 @@ public class EnrollmentDAOImpl implements EnrollmentDAO {
|
|||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String sql = "DELETE DM_ENROLMENT WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?";
|
String sql = "DELETE DM_ENROLMENT WHERE DEVICE_ID = ? AND OWNER = ? AND TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setInt(1, deviceId);
|
stmt.setInt(1, deviceId);
|
||||||
stmt.setString(2, currentOwner);
|
stmt.setString(2, currentOwner);
|
||||||
stmt.setInt(3, tenantId);
|
stmt.setInt(3, tenantId);
|
||||||
|
|||||||
@ -44,7 +44,7 @@ public class DeviceManagementDataHolder {
|
|||||||
private AppManagementConfig appManagerConfig;
|
private AppManagementConfig appManagerConfig;
|
||||||
private OperationManager operationManager;
|
private OperationManager operationManager;
|
||||||
private ConfigurationContextService configurationContextService;
|
private ConfigurationContextService configurationContextService;
|
||||||
private HashMap<String,Boolean> isUserLevelAutherizationAllowMap;
|
private HashMap<String,Boolean> requireDeviceAuthorization = new HashMap<>();
|
||||||
private DeviceAccessAuthorizationService deviceAccessAuthorizationService;
|
private DeviceAccessAuthorizationService deviceAccessAuthorizationService;
|
||||||
|
|
||||||
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
private static DeviceManagementDataHolder thisInstance = new DeviceManagementDataHolder();
|
||||||
@ -148,12 +148,12 @@ public class DeviceManagementDataHolder {
|
|||||||
this.configurationContextService = configurationContextService;
|
this.configurationContextService = configurationContextService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIsUserLevelAutherizationAllow(String pluginType, boolean isAllowUserAuthentication) {
|
public void setRequireDeviceAuthorization(String pluginType, boolean requireAuthentication) {
|
||||||
isUserLevelAutherizationAllowMap.put(pluginType,isAllowUserAuthentication);
|
requireDeviceAuthorization.put(pluginType,requireAuthentication);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getIsUserLevelAutherizationAllow(String pluginType) {
|
public boolean requireDeviceAuthorization(String pluginType) {
|
||||||
return isUserLevelAutherizationAllowMap.get(pluginType);
|
return requireDeviceAuthorization.get(pluginType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DeviceAccessAuthorizationService getDeviceAccessAuthorizationService() {
|
public DeviceAccessAuthorizationService getDeviceAccessAuthorizationService() {
|
||||||
|
|||||||
@ -82,8 +82,13 @@ public class OperationManagerImpl implements OperationManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
List<DeviceIdentifier> authorizedDeviceList = DeviceManagementDataHolder.getInstance().
|
List<DeviceIdentifier> authorizedDeviceList;
|
||||||
getDeviceAccessAuthorizationService().isUserAuthorized(deviceIds).getAuthorizedDevices();
|
if (operation != null && PolicyOperation.POLICY_OPERATION_CODE.equals(operation.getCode())) {
|
||||||
|
authorizedDeviceList = deviceIds;
|
||||||
|
} else {
|
||||||
|
authorizedDeviceList = DeviceManagementDataHolder.getInstance().
|
||||||
|
getDeviceAccessAuthorizationService().isUserAuthorized(deviceIds).getAuthorizedDevices();
|
||||||
|
}
|
||||||
if (authorizedDeviceList.size() > 0) {
|
if (authorizedDeviceList.size() > 0) {
|
||||||
try {
|
try {
|
||||||
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
|
|||||||
@ -45,7 +45,7 @@ public class OperationDAOImpl implements OperationDAO {
|
|||||||
Connection connection = OperationManagementDAOFactory.getConnection();
|
Connection connection = OperationManagementDAOFactory.getConnection();
|
||||||
String sql = "INSERT INTO DM_OPERATION(TYPE, CREATED_TIMESTAMP, RECEIVED_TIMESTAMP, OPERATION_CODE) " +
|
String sql = "INSERT INTO DM_OPERATION(TYPE, CREATED_TIMESTAMP, RECEIVED_TIMESTAMP, OPERATION_CODE) " +
|
||||||
"VALUES (?, ?, ?, ?)";
|
"VALUES (?, ?, ?, ?)";
|
||||||
stmt = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
|
stmt = connection.prepareStatement(sql, new String[] {"id"});
|
||||||
stmt.setString(1, operation.getType().toString());
|
stmt.setString(1, operation.getType().toString());
|
||||||
stmt.setTimestamp(2, new Timestamp(new Date().getTime()));
|
stmt.setTimestamp(2, new Timestamp(new Date().getTime()));
|
||||||
stmt.setTimestamp(3, null);
|
stmt.setTimestamp(3, null);
|
||||||
|
|||||||
@ -39,6 +39,8 @@ public class PolicyOperationDAOImpl extends OperationDAOImpl {
|
|||||||
public int addOperation(Operation operation) throws OperationManagementDAOException {
|
public int addOperation(Operation operation) throws OperationManagementDAOException {
|
||||||
int operationId;
|
int operationId;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
|
ByteArrayOutputStream bao = null;
|
||||||
|
ObjectOutputStream oos = null;
|
||||||
try {
|
try {
|
||||||
operationId = super.addOperation(operation);
|
operationId = super.addOperation(operation);
|
||||||
operation.setCreatedTimeStamp(new Timestamp(new java.util.Date().getTime()).toString());
|
operation.setCreatedTimeStamp(new Timestamp(new java.util.Date().getTime()).toString());
|
||||||
@ -48,12 +50,33 @@ public class PolicyOperationDAOImpl extends OperationDAOImpl {
|
|||||||
Connection conn = OperationManagementDAOFactory.getConnection();
|
Connection conn = OperationManagementDAOFactory.getConnection();
|
||||||
stmt = conn.prepareStatement("INSERT INTO DM_POLICY_OPERATION(OPERATION_ID, OPERATION_DETAILS) " +
|
stmt = conn.prepareStatement("INSERT INTO DM_POLICY_OPERATION(OPERATION_ID, OPERATION_DETAILS) " +
|
||||||
"VALUES(?, ?)");
|
"VALUES(?, ?)");
|
||||||
|
|
||||||
|
bao = new ByteArrayOutputStream();
|
||||||
|
oos = new ObjectOutputStream(bao);
|
||||||
|
oos.writeObject(operation);
|
||||||
|
|
||||||
stmt.setInt(1, operationId);
|
stmt.setInt(1, operationId);
|
||||||
stmt.setObject(2, policyOperation);
|
stmt.setBytes(2, bao.toByteArray());
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new OperationManagementDAOException("Error occurred while adding policy operation", e);
|
throw new OperationManagementDAOException("Error occurred while adding policy operation", e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new OperationManagementDAOException("Error occurred while serializing policy operation object", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
if (bao != null) {
|
||||||
|
try {
|
||||||
|
bao.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ByteArrayOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (oos != null) {
|
||||||
|
try {
|
||||||
|
oos.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ObjectOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
OperationManagementDAOUtil.cleanupResources(stmt);
|
OperationManagementDAOUtil.cleanupResources(stmt);
|
||||||
}
|
}
|
||||||
return operationId;
|
return operationId;
|
||||||
|
|||||||
@ -37,22 +37,46 @@ public class ProfileOperationDAOImpl extends OperationDAOImpl {
|
|||||||
|
|
||||||
public int addOperation(Operation operation) throws OperationManagementDAOException {
|
public int addOperation(Operation operation) throws OperationManagementDAOException {
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
|
ByteArrayOutputStream bao = null;
|
||||||
|
ObjectOutputStream oos = null;
|
||||||
|
|
||||||
int operationId;
|
int operationId;
|
||||||
try {
|
try {
|
||||||
operationId = super.addOperation(operation);
|
operationId = super.addOperation(operation);
|
||||||
operation.setCreatedTimeStamp(new Timestamp(new java.util.Date().getTime()).toString());
|
operation.setCreatedTimeStamp(new Timestamp(new java.util.Date().getTime()).toString());
|
||||||
operation.setId(operationId);
|
operation.setId(operationId);
|
||||||
operation.setEnabled(true);
|
operation.setEnabled(true);
|
||||||
ProfileOperation profileOp = (ProfileOperation) operation;
|
//ProfileOperation profileOp = (ProfileOperation) operation;
|
||||||
Connection conn = OperationManagementDAOFactory.getConnection();
|
Connection conn = OperationManagementDAOFactory.getConnection();
|
||||||
stmt = conn.prepareStatement("INSERT INTO DM_PROFILE_OPERATION(OPERATION_ID, OPERATION_DETAILS) " +
|
stmt = conn.prepareStatement("INSERT INTO DM_PROFILE_OPERATION(OPERATION_ID, OPERATION_DETAILS) " +
|
||||||
"VALUES(?, ?)");
|
"VALUES(?, ?)");
|
||||||
|
|
||||||
|
bao = new ByteArrayOutputStream();
|
||||||
|
oos = new ObjectOutputStream(bao);
|
||||||
|
oos.writeObject(operation);
|
||||||
|
|
||||||
stmt.setInt(1, operationId);
|
stmt.setInt(1, operationId);
|
||||||
stmt.setObject(2, profileOp);
|
stmt.setBytes(2, bao.toByteArray());
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new OperationManagementDAOException("Error occurred while adding profile operation", e);
|
throw new OperationManagementDAOException("Error occurred while adding profile operation", e);
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new OperationManagementDAOException("Error occurred while serializing profile operation object", e);
|
||||||
} finally {
|
} finally {
|
||||||
|
if (bao != null) {
|
||||||
|
try {
|
||||||
|
bao.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ByteArrayOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (oos != null) {
|
||||||
|
try {
|
||||||
|
oos.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
log.warn("Error occurred while closing ObjectOutputStream", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
OperationManagementDAOUtil.cleanupResources(stmt);
|
OperationManagementDAOUtil.cleanupResources(stmt);
|
||||||
}
|
}
|
||||||
return operationId;
|
return operationId;
|
||||||
|
|||||||
@ -116,4 +116,9 @@ public class TestDeviceManager implements DeviceManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean requireDeviceAuthorization() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -46,7 +46,7 @@ public interface MonitoringDAO {
|
|||||||
|
|
||||||
void setDeviceAsCompliance(int deviceId, int enrolmentId, int policyId) throws MonitoringDAOException;
|
void setDeviceAsCompliance(int deviceId, int enrolmentId, int policyId) throws MonitoringDAOException;
|
||||||
|
|
||||||
void addNoneComplianceFeatures(int policyComplianceStatusId, int deviceId, List<ComplianceFeature>
|
void addNonComplianceFeatures(int policyComplianceStatusId, int deviceId, List<ComplianceFeature>
|
||||||
complianceFeatures)
|
complianceFeatures)
|
||||||
throws MonitoringDAOException;
|
throws MonitoringDAOException;
|
||||||
|
|
||||||
|
|||||||
@ -140,7 +140,7 @@ public interface PolicyDAO {
|
|||||||
|
|
||||||
Policy getAppliedPolicy(int deviceId, int enrollmentId) throws PolicyManagerDAOException;
|
Policy getAppliedPolicy(int deviceId, int enrollmentId) throws PolicyManagerDAOException;
|
||||||
|
|
||||||
HashMap<Integer, Integer> getAppliedPolicyIds(List<Integer> deviceIds) throws PolicyManagerDAOException;
|
HashMap<Integer, Integer> getAppliedPolicyIds() throws PolicyManagerDAOException;
|
||||||
|
|
||||||
HashMap<Integer, Integer> getAppliedPolicyIdsDeviceIds() throws PolicyManagerDAOException;
|
HashMap<Integer, Integer> getAppliedPolicyIdsDeviceIds() throws PolicyManagerDAOException;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -67,7 +67,7 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_PROFILE_FEATURES (PROFILE_ID, FEATURE_CODE, DEVICE_TYPE_ID, CONTENT, " +
|
String query = "INSERT INTO DM_PROFILE_FEATURES (PROFILE_ID, FEATURE_CODE, DEVICE_TYPE_ID, CONTENT, " +
|
||||||
"TENANT_ID) VALUES (?, ?, ?, ?, ?)";
|
"TENANT_ID) VALUES (?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, new String[] {"id"});
|
||||||
|
|
||||||
for (ProfileFeature feature : features) {
|
for (ProfileFeature feature : features) {
|
||||||
stmt.setInt(1, profileId);
|
stmt.setInt(1, profileId);
|
||||||
@ -113,13 +113,9 @@ public class FeatureDAOImpl implements FeatureDAO {
|
|||||||
String query = "UPDATE DM_PROFILE_FEATURES SET CONTENT = ? WHERE PROFILE_ID = ? AND FEATURE_CODE = ? AND" +
|
String query = "UPDATE DM_PROFILE_FEATURES SET CONTENT = ? WHERE PROFILE_ID = ? AND FEATURE_CODE = ? AND" +
|
||||||
" TENANT_ID = ?";
|
" TENANT_ID = ?";
|
||||||
|
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query);
|
||||||
for (ProfileFeature feature : features) {
|
for (ProfileFeature feature : features) {
|
||||||
if (conn.getMetaData().getDriverName().contains("H2")) {
|
stmt.setBytes(1, PolicyManagerUtil.getBytes(feature.getContent()));
|
||||||
stmt.setBytes(1, PolicyManagerUtil.getBytes(feature.getContent()));
|
|
||||||
} else {
|
|
||||||
stmt.setBytes(1, PolicyManagerUtil.getBytes(feature.getContent()));
|
|
||||||
}
|
|
||||||
stmt.setInt(2, profileId);
|
stmt.setInt(2, profileId);
|
||||||
stmt.setString(3, feature.getFeatureCode());
|
stmt.setString(3, feature.getFeatureCode());
|
||||||
stmt.setInt(4, tenantId);
|
stmt.setInt(4, tenantId);
|
||||||
|
|||||||
@ -206,7 +206,7 @@ public class MonitoringDAOImpl implements MonitoringDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addNoneComplianceFeatures(int policyComplianceStatusId, int deviceId, List<ComplianceFeature>
|
public void addNonComplianceFeatures(int policyComplianceStatusId, int deviceId, List<ComplianceFeature>
|
||||||
complianceFeatures) throws MonitoringDAOException {
|
complianceFeatures) throws MonitoringDAOException {
|
||||||
Connection conn;
|
Connection conn;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
@ -215,7 +215,7 @@ public class MonitoringDAOImpl implements MonitoringDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_POLICY_COMPLIANCE_FEATURES (COMPLIANCE_STATUS_ID, FEATURE_CODE, STATUS, " +
|
String query = "INSERT INTO DM_POLICY_COMPLIANCE_FEATURES (COMPLIANCE_STATUS_ID, FEATURE_CODE, STATUS, " +
|
||||||
"TENANT_ID) VALUES (?, ?, ?, ?) ";
|
"TENANT_ID) VALUES (?, ?, ?, ?) ";
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query);
|
||||||
for (ComplianceFeature feature : complianceFeatures) {
|
for (ComplianceFeature feature : complianceFeatures) {
|
||||||
stmt.setInt(1, policyComplianceStatusId);
|
stmt.setInt(1, policyComplianceStatusId);
|
||||||
stmt.setString(2, feature.getFeatureCode());
|
stmt.setString(2, feature.getFeatureCode());
|
||||||
|
|||||||
@ -442,7 +442,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_CRITERIA (TENANT_ID, NAME) VALUES (?, ?)";
|
String query = "INSERT INTO DM_CRITERIA (TENANT_ID, NAME) VALUES (?, ?)";
|
||||||
stmt = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, new String[] {"id"});
|
||||||
stmt.setInt(1, tenantId);
|
stmt.setInt(1, tenantId);
|
||||||
stmt.setString(2, criteria.getName());
|
stmt.setString(2, criteria.getName());
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
@ -622,7 +622,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_POLICY_CRITERIA (CRITERIA_ID, POLICY_ID) VALUES (?, ?)";
|
String query = "INSERT INTO DM_POLICY_CRITERIA (CRITERIA_ID, POLICY_ID) VALUES (?, ?)";
|
||||||
stmt = conn.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, new String[] {"id"});
|
||||||
|
|
||||||
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
List<PolicyCriterion> criteria = policy.getPolicyCriterias();
|
||||||
for (PolicyCriterion criterion : criteria) {
|
for (PolicyCriterion criterion : criteria) {
|
||||||
@ -1348,7 +1348,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID, PRIORITY, COMPLIANCE, OWNERSHIP_TYPE," +
|
String query = "INSERT INTO DM_POLICY (NAME, PROFILE_ID, TENANT_ID, PRIORITY, COMPLIANCE, OWNERSHIP_TYPE," +
|
||||||
"UPDATED, ACTIVE, DESCRIPTION) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
"UPDATED, ACTIVE, DESCRIPTION) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, new String[] {"id"});
|
||||||
|
|
||||||
stmt.setString(1, policy.getPolicyName());
|
stmt.setString(1, policy.getPolicyName());
|
||||||
stmt.setInt(2, policy.getProfile().getProfileId());
|
stmt.setInt(2, policy.getProfile().getProfileId());
|
||||||
@ -1563,7 +1563,7 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HashMap<Integer, Integer> getAppliedPolicyIds(List<Integer> deviceIds) throws PolicyManagerDAOException {
|
public HashMap<Integer, Integer> getAppliedPolicyIds() throws PolicyManagerDAOException {
|
||||||
Connection conn;
|
Connection conn;
|
||||||
PreparedStatement stmt = null;
|
PreparedStatement stmt = null;
|
||||||
ResultSet resultSet = null;
|
ResultSet resultSet = null;
|
||||||
@ -1571,10 +1571,9 @@ public class PolicyDAOImpl implements PolicyDAO {
|
|||||||
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId();
|
||||||
try {
|
try {
|
||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "SELECT * FROM DM_DEVICE_POLICY_APPLIED WHERE DEVICE_ID = ? AND TENANT_ID = ?";
|
String query = "SELECT * FROM DM_DEVICE_POLICY_APPLIED WHERE TENANT_ID = ?";
|
||||||
stmt = conn.prepareStatement(query);
|
stmt = conn.prepareStatement(query);
|
||||||
stmt.setString(1, PolicyManagerUtil.makeString(deviceIds));
|
stmt.setInt(1, tenantId);
|
||||||
stmt.setInt(2, tenantId);
|
|
||||||
resultSet = stmt.executeQuery();
|
resultSet = stmt.executeQuery();
|
||||||
|
|
||||||
while (resultSet.next()) {
|
while (resultSet.next()) {
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public class ProfileDAOImpl implements ProfileDAO {
|
|||||||
conn = this.getConnection();
|
conn = this.getConnection();
|
||||||
String query = "INSERT INTO DM_PROFILE " +
|
String query = "INSERT INTO DM_PROFILE " +
|
||||||
"(PROFILE_NAME,TENANT_ID, DEVICE_TYPE_ID, CREATED_TIME, UPDATED_TIME) VALUES (?, ?, ?, ?, ?)";
|
"(PROFILE_NAME,TENANT_ID, DEVICE_TYPE_ID, CREATED_TIME, UPDATED_TIME) VALUES (?, ?, ?, ?, ?)";
|
||||||
stmt = conn.prepareStatement(query, PreparedStatement.RETURN_GENERATED_KEYS);
|
stmt = conn.prepareStatement(query, new String[] {"id"});
|
||||||
|
|
||||||
stmt.setString(1, profile.getProfileName());
|
stmt.setString(1, profile.getProfileName());
|
||||||
stmt.setInt(2, tenantId);
|
stmt.setInt(2, tenantId);
|
||||||
|
|||||||
@ -32,7 +32,6 @@ import org.wso2.carbon.policy.mgt.core.mgt.PolicyManager;
|
|||||||
import org.wso2.carbon.policy.mgt.core.mgt.impl.PolicyManagerImpl;
|
import org.wso2.carbon.policy.mgt.core.mgt.impl.PolicyManagerImpl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -73,13 +72,13 @@ public class DelegationTask implements Task {
|
|||||||
throw new PolicyManagementException("Error occurred while taking the devices", e);
|
throw new PolicyManagementException("Error occurred while taking the devices", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HashMap<Integer, Integer> deviceIdPolicy = policyManager.getAppliedPolicyIdsDeviceIds();
|
// HashMap<Integer, Integer> deviceIdPolicy = policyManager.getAppliedPolicyIdsDeviceIds();
|
||||||
List<Device> toBeNotified = new ArrayList<>();
|
List<Device> toBeNotified = new ArrayList<>();
|
||||||
|
|
||||||
for (Device device : devices) {
|
for (Device device : devices) {
|
||||||
if (deviceIdPolicy.containsKey(device.getId())) {
|
// if (deviceIdPolicy.containsKey(device.getId())) {
|
||||||
toBeNotified.add(device);
|
toBeNotified.add(device);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
if (!toBeNotified.isEmpty()) {
|
if (!toBeNotified.isEmpty()) {
|
||||||
PolicyEnforcementDelegator enforcementDelegator = new PolicyEnforcementDelegatorImpl(toBeNotified);
|
PolicyEnforcementDelegator enforcementDelegator = new PolicyEnforcementDelegatorImpl(toBeNotified);
|
||||||
|
|||||||
@ -62,8 +62,8 @@ public class MonitoringManagerImpl implements MonitoringManager {
|
|||||||
|
|
||||||
private static final Log log = LogFactory.getLog(MonitoringManagerImpl.class);
|
private static final Log log = LogFactory.getLog(MonitoringManagerImpl.class);
|
||||||
private static final String OPERATION_MONITOR = "MONITOR";
|
private static final String OPERATION_MONITOR = "MONITOR";
|
||||||
private static final String OPERATION_INFO = "DEVICE_INFO";
|
private static final String OPERATION_INFO = "DEVICE_INFO";
|
||||||
private static final String OPERATION_APP_LIST = "APPLICATION_LIST";
|
private static final String OPERATION_APP_LIST = "APPLICATION_LIST";
|
||||||
|
|
||||||
public MonitoringManagerImpl() {
|
public MonitoringManagerImpl() {
|
||||||
this.policyDAO = PolicyManagementDAOFactory.getPolicyDAO();
|
this.policyDAO = PolicyManagementDAOFactory.getPolicyDAO();
|
||||||
@ -120,7 +120,7 @@ public class MonitoringManagerImpl implements MonitoringManager {
|
|||||||
if (log.isDebugEnabled()) {
|
if (log.isDebugEnabled()) {
|
||||||
log.debug("Compliance status primary key " + complianceData.getId());
|
log.debug("Compliance status primary key " + complianceData.getId());
|
||||||
}
|
}
|
||||||
monitoringDAO.addNoneComplianceFeatures(complianceData.getId(), device.getId(),
|
monitoringDAO.addNonComplianceFeatures(complianceData.getId(), device.getId(),
|
||||||
complianceFeatures);
|
complianceFeatures);
|
||||||
|
|
||||||
PolicyManagementDAOFactory.commitTransaction();
|
PolicyManagementDAOFactory.commitTransaction();
|
||||||
@ -229,7 +229,7 @@ public class MonitoringManagerImpl implements MonitoringManager {
|
|||||||
//int tenantId = PolicyManagerUtil.getTenantId();
|
//int tenantId = PolicyManagerUtil.getTenantId();
|
||||||
Map<Integer, Device> deviceIds = new HashMap<>();
|
Map<Integer, Device> deviceIds = new HashMap<>();
|
||||||
List<ComplianceData> complianceDatas = new ArrayList<>();
|
List<ComplianceData> complianceDatas = new ArrayList<>();
|
||||||
HashMap<Integer, Integer> devicePolicyIdMap;
|
HashMap<Integer, Integer> devicePolicyIdMap = new HashMap<>();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
PolicyManagementDAOFactory.openConnection();
|
PolicyManagementDAOFactory.openConnection();
|
||||||
@ -247,7 +247,13 @@ public class MonitoringManagerImpl implements MonitoringManager {
|
|||||||
}
|
}
|
||||||
List<Integer> deviceIDs = new ArrayList<>(deviceIds.keySet());
|
List<Integer> deviceIDs = new ArrayList<>(deviceIds.keySet());
|
||||||
|
|
||||||
devicePolicyIdMap = policyDAO.getAppliedPolicyIds(deviceIDs);
|
HashMap<Integer, Integer> temp = policyDAO.getAppliedPolicyIds();
|
||||||
|
for (Integer id : deviceIDs) {
|
||||||
|
if (temp != null && !temp.isEmpty() && temp.containsKey(id)) {
|
||||||
|
devicePolicyIdMap.put(id, temp.get(id));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
throw new PolicyComplianceException("SQL error occurred while getting monitoring details.", e);
|
throw new PolicyComplianceException("SQL error occurred while getting monitoring details.", e);
|
||||||
} catch (MonitoringDAOException e) {
|
} catch (MonitoringDAOException e) {
|
||||||
@ -380,19 +386,19 @@ public class MonitoringManagerImpl implements MonitoringManager {
|
|||||||
monitoringOperation.setEnabled(true);
|
monitoringOperation.setEnabled(true);
|
||||||
monitoringOperation.setType(Operation.Type.COMMAND);
|
monitoringOperation.setType(Operation.Type.COMMAND);
|
||||||
monitoringOperation.setCode(OPERATION_MONITOR);
|
monitoringOperation.setCode(OPERATION_MONITOR);
|
||||||
CommandOperation infoOperation = new CommandOperation();
|
// CommandOperation infoOperation = new CommandOperation();
|
||||||
infoOperation.setEnabled(true);
|
// infoOperation.setEnabled(true);
|
||||||
infoOperation.setType(Operation.Type.COMMAND);
|
// infoOperation.setType(Operation.Type.COMMAND);
|
||||||
infoOperation.setCode(OPERATION_INFO);
|
// infoOperation.setCode(OPERATION_INFO);
|
||||||
CommandOperation appListOperation = new CommandOperation();
|
// CommandOperation appListOperation = new CommandOperation();
|
||||||
appListOperation.setEnabled(true);
|
// appListOperation.setEnabled(true);
|
||||||
appListOperation.setType(Operation.Type.COMMAND);
|
// appListOperation.setType(Operation.Type.COMMAND);
|
||||||
appListOperation.setCode(OPERATION_APP_LIST);
|
// appListOperation.setCode(OPERATION_APP_LIST);
|
||||||
|
|
||||||
DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl();
|
DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl();
|
||||||
service.addOperation(monitoringOperation, deviceIdentifiers);
|
service.addOperation(monitoringOperation, deviceIdentifiers);
|
||||||
service.addOperation(infoOperation, deviceIdentifiers);
|
// service.addOperation(infoOperation, deviceIdentifiers);
|
||||||
service.addOperation(appListOperation, deviceIdentifiers);
|
// service.addOperation(appListOperation, deviceIdentifiers);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<DeviceIdentifier> getDeviceIdentifiersFromDevices(List<Device> devices) {
|
private List<DeviceIdentifier> getDeviceIdentifiersFromDevices(List<Device> devices) {
|
||||||
|
|||||||
@ -23,7 +23,6 @@ import org.apache.commons.logging.Log;
|
|||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.Device;
|
||||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOException;
|
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceManagementDAOFactory;
|
||||||
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
import org.wso2.carbon.device.mgt.core.dao.DeviceTypeDAO;
|
||||||
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
||||||
@ -90,7 +89,7 @@ public class MonitoringTask implements Task {
|
|||||||
PolicyManagementDataHolder.getInstance().getPolicyMonitoringService(deviceType.getName());
|
PolicyManagementDataHolder.getInstance().getPolicyMonitoringService(deviceType.getName());
|
||||||
List<Device> devices = deviceManagementProviderService.getAllDevices(deviceType.getName());
|
List<Device> devices = deviceManagementProviderService.getAllDevices(deviceType.getName());
|
||||||
if (monitoringService != null && !devices.isEmpty()) {
|
if (monitoringService != null && !devices.isEmpty()) {
|
||||||
monitoringManager.addMonitoringOperation(devices);
|
|
||||||
|
|
||||||
List<Device> notifiableDevices = new ArrayList<>();
|
List<Device> notifiableDevices = new ArrayList<>();
|
||||||
|
|
||||||
@ -118,6 +117,7 @@ public class MonitoringTask implements Task {
|
|||||||
log.debug(device.getDeviceIdentifier());
|
log.debug(device.getDeviceIdentifier());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
monitoringManager.addMonitoringOperation(notifiableDevices);
|
||||||
monitoringService.notifyDevices(notifiableDevices);
|
monitoringService.notifyDevices(notifiableDevices);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,12 +31,8 @@ import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
|||||||
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
|
import org.wso2.carbon.device.mgt.core.operation.mgt.OperationManagerImpl;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderService;
|
||||||
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
|
import org.wso2.carbon.device.mgt.core.service.DeviceManagementProviderServiceImpl;
|
||||||
import org.wso2.carbon.ntask.common.TaskException;
|
|
||||||
import org.wso2.carbon.ntask.core.service.TaskService;
|
|
||||||
import org.wso2.carbon.ntask.core.service.impl.TaskServiceImpl;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.Policy;
|
import org.wso2.carbon.policy.mgt.common.Policy;
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
import org.wso2.carbon.policy.mgt.common.PolicyManagementException;
|
||||||
import org.wso2.carbon.policy.mgt.common.PolicyMonitoringTaskException;
|
|
||||||
import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException;
|
import org.wso2.carbon.policy.mgt.common.monitor.PolicyComplianceException;
|
||||||
import org.wso2.carbon.policy.mgt.core.internal.PolicyManagementDataHolder;
|
import org.wso2.carbon.policy.mgt.core.internal.PolicyManagementDataHolder;
|
||||||
import org.wso2.carbon.policy.mgt.core.mgt.MonitoringManager;
|
import org.wso2.carbon.policy.mgt.core.mgt.MonitoringManager;
|
||||||
@ -127,7 +123,7 @@ public class MonitoringTestCase extends BasePolicyManagementDAOTest {
|
|||||||
DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl();
|
DeviceManagementProviderService service = new DeviceManagementProviderServiceImpl();
|
||||||
List<Device> devices = service.getAllDevices(ANDROID);
|
List<Device> devices = service.getAllDevices(ANDROID);
|
||||||
|
|
||||||
monitoringManager.addMonitoringOperation(devices);
|
// monitoringManager.addMonitoringOperation(devices);
|
||||||
|
|
||||||
log.debug("Compliance operations adding done.");
|
log.debug("Compliance operations adding done.");
|
||||||
|
|
||||||
|
|||||||
@ -22,7 +22,7 @@
|
|||||||
<suite name="CDM-core-initializer">
|
<suite name="CDM-core-initializer">
|
||||||
<parameter name="useDefaultListeners" value="false"/>
|
<parameter name="useDefaultListeners" value="false"/>
|
||||||
|
|
||||||
<test name="DAO Unit Tests" preserve-order="true">
|
<test name="DAO Unit Tests" preserve-order="true" parallel="false">
|
||||||
<parameter name="dbType" value="H2"/>
|
<parameter name="dbType" value="H2"/>
|
||||||
<classes>
|
<classes>
|
||||||
<class name="org.wso2.carbon.policy.mgt.core.PolicyDAOTestCase"/>
|
<class name="org.wso2.carbon.policy.mgt.core.PolicyDAOTestCase"/>
|
||||||
|
|||||||
@ -28,9 +28,7 @@ import org.wso2.carbon.tomcat.ext.valves.CompositeValve;
|
|||||||
import org.wso2.carbon.webapp.authenticator.framework.authenticator.WebappAuthenticator;
|
import org.wso2.carbon.webapp.authenticator.framework.authenticator.WebappAuthenticator;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
|
|
||||||
public class WebappAuthenticationValve extends CarbonTomcatValve {
|
public class WebappAuthenticationValve extends CarbonTomcatValve {
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException;
|
import org.wso2.carbon.certificate.mgt.core.exception.KeystoreException;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
import org.wso2.carbon.device.mgt.common.DeviceManagementConstants;
|
||||||
|
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
||||||
import org.wso2.carbon.device.mgt.core.scep.SCEPException;
|
import org.wso2.carbon.device.mgt.core.scep.SCEPException;
|
||||||
import org.wso2.carbon.device.mgt.core.scep.SCEPManager;
|
import org.wso2.carbon.device.mgt.core.scep.SCEPManager;
|
||||||
import org.wso2.carbon.device.mgt.core.scep.TenantedDeviceWrapper;
|
import org.wso2.carbon.device.mgt.core.scep.TenantedDeviceWrapper;
|
||||||
@ -68,6 +69,14 @@ public class CertificateAuthenticator implements WebappAuthenticator {
|
|||||||
TenantedDeviceWrapper tenantedDeviceWrapper = scepManager.getValidatedDevice(deviceIdentifier);
|
TenantedDeviceWrapper tenantedDeviceWrapper = scepManager.getValidatedDevice(deviceIdentifier);
|
||||||
authenticationInfo.setTenantDomain(tenantedDeviceWrapper.getTenantDomain());
|
authenticationInfo.setTenantDomain(tenantedDeviceWrapper.getTenantDomain());
|
||||||
authenticationInfo.setTenantId(tenantedDeviceWrapper.getTenantId());
|
authenticationInfo.setTenantId(tenantedDeviceWrapper.getTenantId());
|
||||||
|
|
||||||
|
if(tenantedDeviceWrapper.getDevice() != null &&
|
||||||
|
tenantedDeviceWrapper.getDevice().getEnrolmentInfo() != null) {
|
||||||
|
|
||||||
|
EnrolmentInfo enrolmentInfo = tenantedDeviceWrapper.getDevice().getEnrolmentInfo();
|
||||||
|
authenticationInfo.setUsername(enrolmentInfo.getOwner());
|
||||||
|
}
|
||||||
|
|
||||||
authenticationInfo.setStatus(Status.CONTINUE);
|
authenticationInfo.setStatus(Status.CONTINUE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -35,7 +35,7 @@ CREATE TABLE DM_CONFIG_OPERATION (
|
|||||||
|
|
||||||
CREATE TABLE DM_COMMAND_OPERATION (
|
CREATE TABLE DM_COMMAND_OPERATION (
|
||||||
OPERATION_ID INTEGER NOT NULL,
|
OPERATION_ID INTEGER NOT NULL,
|
||||||
ENABLED BIT NOT NULL DEFAULT FALSE,
|
ENABLED BIT NOT NULL DEFAULT 'FALSE',
|
||||||
PRIMARY KEY (OPERATION_ID),
|
PRIMARY KEY (OPERATION_ID),
|
||||||
CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
DM_OPERATION (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
||||||
@ -337,20 +337,6 @@ CREATE TABLE DM_POLICY_COMPLIANCE_FEATURES (
|
|||||||
ON UPDATE NO ACTION
|
ON UPDATE NO ACTION
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE DM_ENROLMENT (
|
|
||||||
ID INTEGER IDENTITY NOT NULL,
|
|
||||||
DEVICE_ID INTEGER NOT NULL,
|
|
||||||
OWNER VARCHAR(50) NOT NULL,
|
|
||||||
OWNERSHIP VARCHAR(45) DEFAULT NULL,
|
|
||||||
STATUS VARCHAR(50) NULL,
|
|
||||||
DATE_OF_ENROLMENT DATETIME2(0) DEFAULT NULL,
|
|
||||||
DATE_OF_LAST_UPDATE DATETIME2(0) DEFAULT NULL,
|
|
||||||
TENANT_ID INT NOT NULL,
|
|
||||||
PRIMARY KEY (ID),
|
|
||||||
CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES
|
|
||||||
DM_DEVICE (ID) ON DELETE NO ACTION ON UPDATE NO ACTION
|
|
||||||
);
|
|
||||||
|
|
||||||
CREATE TABLE DM_APPLICATION (
|
CREATE TABLE DM_APPLICATION (
|
||||||
ID INTEGER IDENTITY NOT NULL,
|
ID INTEGER IDENTITY NOT NULL,
|
||||||
NAME VARCHAR(150) NOT NULL,
|
NAME VARCHAR(150) NOT NULL,
|
||||||
|
|||||||
@ -26,7 +26,7 @@ CREATE TABLE DM_DEVICE (
|
|||||||
DEVICE_IDENTIFICATION VARCHAR2(300) DEFAULT NULL,
|
DEVICE_IDENTIFICATION VARCHAR2(300) DEFAULT NULL,
|
||||||
TENANT_ID NUMBER(10) DEFAULT 0,
|
TENANT_ID NUMBER(10) DEFAULT 0,
|
||||||
CONSTRAINT PK_DM_DEVICE PRIMARY KEY (ID),
|
CONSTRAINT PK_DM_DEVICE PRIMARY KEY (ID),
|
||||||
CONSTRAINT fk_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID )
|
CONSTRAINT FK_DM_DEVICE_DM_DEVICE_TYPE2 FOREIGN KEY (DEVICE_TYPE_ID )
|
||||||
REFERENCES DM_DEVICE_TYPE (ID)
|
REFERENCES DM_DEVICE_TYPE (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -71,7 +71,7 @@ CREATE TABLE DM_CONFIG_OPERATION (
|
|||||||
OPERATION_ID NUMBER(10) NOT NULL,
|
OPERATION_ID NUMBER(10) NOT NULL,
|
||||||
OPERATION_CONFIG BLOB DEFAULT NULL,
|
OPERATION_CONFIG BLOB DEFAULT NULL,
|
||||||
CONSTRAINT PK_DM_CONFIG_OPERATION PRIMARY KEY (OPERATION_ID),
|
CONSTRAINT PK_DM_CONFIG_OPERATION PRIMARY KEY (OPERATION_ID),
|
||||||
CONSTRAINT fk_dm_operation_config FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_OPERATION_CONFIG FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -79,7 +79,7 @@ CREATE TABLE DM_COMMAND_OPERATION (
|
|||||||
OPERATION_ID NUMBER(10) NOT NULL,
|
OPERATION_ID NUMBER(10) NOT NULL,
|
||||||
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
||||||
CONSTRAINT PK_DM_COMMAND_OPERATION PRIMARY KEY (OPERATION_ID),
|
CONSTRAINT PK_DM_COMMAND_OPERATION PRIMARY KEY (OPERATION_ID),
|
||||||
CONSTRAINT fk_dm_operation_command FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_OPERATION_COMMAND FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -88,7 +88,7 @@ CREATE TABLE DM_POLICY_OPERATION (
|
|||||||
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
||||||
OPERATION_DETAILS BLOB DEFAULT NULL,
|
OPERATION_DETAILS BLOB DEFAULT NULL,
|
||||||
CONSTRAINT PK_DM_POLICY_OPERATION PRIMARY KEY (OPERATION_ID),
|
CONSTRAINT PK_DM_POLICY_OPERATION PRIMARY KEY (OPERATION_ID),
|
||||||
CONSTRAINT fk_dm_operation_policy FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_OPERATION_POLICY FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -97,7 +97,7 @@ CREATE TABLE DM_PROFILE_OPERATION (
|
|||||||
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
ENABLED NUMBER(10) DEFAULT 0 NOT NULL,
|
||||||
OPERATION_DETAILS BLOB DEFAULT NULL,
|
OPERATION_DETAILS BLOB DEFAULT NULL,
|
||||||
CONSTRAINT PK_DM_PROFILE_OPERATION PRIMARY KEY (OPERATION_ID),
|
CONSTRAINT PK_DM_PROFILE_OPERATION PRIMARY KEY (OPERATION_ID),
|
||||||
CONSTRAINT fk_dm_operation_profile FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_OPERATION_PROFILE FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -111,7 +111,7 @@ CREATE TABLE DM_ENROLMENT (
|
|||||||
DATE_OF_LAST_UPDATE TIMESTAMP(0) DEFAULT NULL,
|
DATE_OF_LAST_UPDATE TIMESTAMP(0) DEFAULT NULL,
|
||||||
TENANT_ID NUMBER(10) NOT NULL,
|
TENANT_ID NUMBER(10) NOT NULL,
|
||||||
CONSTRAINT PK_DM_ENROLMENT PRIMARY KEY (ID),
|
CONSTRAINT PK_DM_ENROLMENT PRIMARY KEY (ID),
|
||||||
CONSTRAINT fk_dm_device_enrolment FOREIGN KEY (DEVICE_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_ENROLMENT FOREIGN KEY (DEVICE_ID) REFERENCES
|
||||||
DM_DEVICE (ID)
|
DM_DEVICE (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -129,29 +129,29 @@ WHEN (NEW.ID IS NULL)
|
|||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
CREATE TABLE DM_ENROLMENT_op_map (
|
CREATE TABLE DM_ENROLMENT_OP_MAPPING (
|
||||||
ID NUMBER(10) NOT NULL,
|
ID NUMBER(10) NOT NULL,
|
||||||
ENROLMENT_ID NUMBER(10) NOT NULL,
|
ENROLMENT_ID NUMBER(10) NOT NULL,
|
||||||
OPERATION_ID NUMBER(10) NOT NULL,
|
OPERATION_ID NUMBER(10) NOT NULL,
|
||||||
STATUS VARCHAR2(50) NULL,
|
STATUS VARCHAR2(50) NULL,
|
||||||
PRIMARY KEY (ID),
|
PRIMARY KEY (ID),
|
||||||
CONSTRAINT fk_dm_device_op_map_device FOREIGN KEY (ENROLMENT_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_OP_MAP_DEVICE FOREIGN KEY (ENROLMENT_ID) REFERENCES
|
||||||
DM_ENROLMENT (ID),
|
DM_ENROLMENT (ID),
|
||||||
CONSTRAINT fk_dm_device_op_map_operation FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_OP_MAP_OPERATION FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
-- Generate ID using sequence and trigger
|
-- Generate ID using sequence and trigger
|
||||||
CREATE SEQUENCE DM_ENROLMENT_op_map_seq START WITH 1 INCREMENT BY 1 NOCACHE
|
CREATE SEQUENCE DM_ENROLMENT_OP_MAP_seq START WITH 1 INCREMENT BY 1 NOCACHE
|
||||||
/
|
/
|
||||||
CREATE OR REPLACE TRIGGER DM_ENROLMENT_op_map_seq_tr
|
CREATE OR REPLACE TRIGGER DM_ENROLMENT_OP_MAP_seq_tr
|
||||||
BEFORE INSERT
|
BEFORE INSERT
|
||||||
ON DM_ENROLMENT_op_map
|
ON DM_ENROLMENT_OP_MAPPING
|
||||||
REFERENCING NEW AS NEW
|
REFERENCING NEW AS NEW
|
||||||
FOR EACH ROW
|
FOR EACH ROW
|
||||||
WHEN (NEW.ID IS NULL)
|
WHEN (NEW.ID IS NULL)
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT DM_ENROLMENT_op_map_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
|
SELECT DM_ENROLMENT_OP_MAP_seq.NEXTVAL INTO :NEW.ID FROM DUAL;
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@ -161,9 +161,9 @@ CREATE TABLE DM_DEVICE_OPERATION_RESPONSE (
|
|||||||
OPERATION_ID NUMBER(10) NOT NULL,
|
OPERATION_ID NUMBER(10) NOT NULL,
|
||||||
OPERATION_RESPONSE BLOB DEFAULT NULL,
|
OPERATION_RESPONSE BLOB DEFAULT NULL,
|
||||||
CONSTRAINT PK_DM_DEVICE_OP_RESPONSE PRIMARY KEY (ID),
|
CONSTRAINT PK_DM_DEVICE_OP_RESPONSE PRIMARY KEY (ID),
|
||||||
CONSTRAINT fk_dm_device_op_res_enrollment FOREIGN KEY (ENROLMENT_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_OP_RES_DEVICE FOREIGN KEY (ENROLMENT_ID) REFERENCES
|
||||||
DM_ENROLMENT (ID),
|
DM_ENROLMENT (ID),
|
||||||
CONSTRAINT fk_dm_device_op_res_operation FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_OP_RES_OPERATION FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
@ -621,9 +621,9 @@ CREATE TABLE DM_NOTIFICATION (
|
|||||||
STATUS VARCHAR2(10) NULL,
|
STATUS VARCHAR2(10) NULL,
|
||||||
DESCRIPTION VARCHAR2(100) NULL,
|
DESCRIPTION VARCHAR2(100) NULL,
|
||||||
CONSTRAINT PK_DM_NOTIFICATION PRIMARY KEY (NOTIFICATION_ID),
|
CONSTRAINT PK_DM_NOTIFICATION PRIMARY KEY (NOTIFICATION_ID),
|
||||||
CONSTRAINT fk_dm_device_notification FOREIGN KEY (DEVICE_ID) REFERENCES
|
CONSTRAINT FK_DM_DEVICE_NOTIFICATION FOREIGN KEY (DEVICE_ID) REFERENCES
|
||||||
DM_DEVICE (ID),
|
DM_DEVICE (ID),
|
||||||
CONSTRAINT fk_dm_operation_notification FOREIGN KEY (OPERATION_ID) REFERENCES
|
CONSTRAINT FK_DM_OPERATION_NOTIFICATION FOREIGN KEY (OPERATION_ID) REFERENCES
|
||||||
DM_OPERATION (ID)
|
DM_OPERATION (ID)
|
||||||
)
|
)
|
||||||
/
|
/
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user