Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Fix retreiving decrypted values from details table for config values
  • Loading branch information
harikrishna-patnala committed Jan 22, 2025
commit 709340623a353c076c28919f63d5b93d6a2a1393
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ public interface ClusterDetailsDao extends GenericDao<ClusterDetailsVO, Long> {
void deleteDetails(long clusterId);

String getVmwareDcName(Long clusterId);

String getActualValue(ClusterDetailsVO clusterDetailsVO);
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,15 @@
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.TransactionLegacy;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.config.impl.ConfigurationVO;

import javax.inject.Inject;

public class ClusterDetailsDaoImpl extends GenericDaoBase<ClusterDetailsVO, Long> implements ClusterDetailsDao, ScopedConfigStorage {

@Inject
private ConfigurationDao _configDao;
protected final SearchBuilder<ClusterDetailsVO> ClusterSearch;
protected final SearchBuilder<ClusterDetailsVO> DetailSearch;

Expand Down Expand Up @@ -138,7 +145,7 @@ public Scope getScope() {
@Override
public String getConfigValue(long id, ConfigKey<?> key) {
ClusterDetailsVO vo = findDetail(id, key.key());
return vo == null ? null : vo.getValue();
return vo == null ? null : getActualValue(vo);
}

@Override
Expand All @@ -161,4 +168,13 @@ private String getCpuMemoryOvercommitRatio(String name) {

return name;
}

@Override
public String getActualValue(ClusterDetailsVO clusterDetailsVO) {
ConfigurationVO configurationVO = _configDao.findByName(clusterDetailsVO.getName());
if (configurationVO != null && configurationVO.isEncrypted()) {
return DBEncryptionUtil.decrypt(clusterDetailsVO.getValue());
}
return clusterDetailsVO.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@

public interface DataCenterDetailsDao extends GenericDao<DataCenterDetailVO, Long>, ResourceDetailsDao<DataCenterDetailVO> {
void persist(long zoneId, String name, String value);

String getActualValue(DataCenterDetailVO dataCenterDetailVO);
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,26 @@
// under the License.
package com.cloud.dc.dao;

import org.apache.cloudstack.api.ResourceDetail;
import com.cloud.utils.crypt.DBEncryptionUtil;
import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.framework.config.ConfigKey.Scope;
import org.apache.cloudstack.framework.config.ScopedConfigStorage;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;

import com.cloud.dc.DataCenterDetailVO;
import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.TransactionLegacy;

import javax.inject.Inject;

public class DataCenterDetailsDaoImpl extends ResourceDetailsDaoBase<DataCenterDetailVO> implements DataCenterDetailsDao, ScopedConfigStorage {

@Inject
private ConfigurationDao _configDao;

private final SearchBuilder<DataCenterDetailVO> DetailSearch;

DataCenterDetailsDaoImpl() {
Expand All @@ -45,8 +52,8 @@ public Scope getScope() {

@Override
public String getConfigValue(long id, ConfigKey<?> key) {
ResourceDetail vo = findDetail(id, key.key());
return vo == null ? null : vo.getValue();
DataCenterDetailVO vo = findDetail(id, key.key());
return vo == null ? null : getActualValue(vo);
}

@Override
Expand All @@ -67,4 +74,13 @@ public void persist(long zoneId, String name, String value) {
persist(vo);
txn.commit();
}

@Override
public String getActualValue(DataCenterDetailVO dataCenterDetailVO) {
ConfigurationVO configurationVO = _configDao.findByName(dataCenterDetailVO.getName());
if (configurationVO != null && configurationVO.isEncrypted()) {
return DBEncryptionUtil.decrypt(dataCenterDetailVO.getValue());
}
return dataCenterDetailVO.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,12 @@
package com.cloud.storage.dao;


import com.cloud.utils.crypt.DBEncryptionUtil;
import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.framework.config.ConfigKey.Scope;
import org.apache.cloudstack.framework.config.ScopedConfigStorage;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
Expand All @@ -33,6 +36,8 @@ public class StoragePoolDetailsDaoImpl extends ResourceDetailsDaoBase<StoragePoo

@Inject
PrimaryDataStoreDao _storagePoolDao;
@Inject
private ConfigurationDao _configDao;

public StoragePoolDetailsDaoImpl() {
}
Expand All @@ -45,7 +50,7 @@ public Scope getScope() {
@Override
public String getConfigValue(long id, ConfigKey<?> key) {
StoragePoolDetailVO vo = findDetail(id, key.key());
return vo == null ? null : vo.getValue();
return vo == null ? null : getActualValue(vo);
}

@Override
Expand All @@ -56,4 +61,13 @@ public void addDetail(long resourceId, String key, String value, boolean display
}
super.addDetail(new StoragePoolDetailVO(resourceId, key, value, display));
}

@Override
public String getActualValue(StoragePoolDetailVO storagePoolDetailVO) {
ConfigurationVO configurationVO = _configDao.findByName(storagePoolDetailVO.getName());
if (configurationVO != null && configurationVO.isEncrypted()) {
return DBEncryptionUtil.decrypt(storagePoolDetailVO.getValue());
}
return storagePoolDetailVO.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,6 @@ public interface ImageStoreDetailsDao extends GenericDao<ImageStoreDetailVO, Lon
Map<String, String> getDetails(long storeId);

void deleteDetails(long storeId);

String getActualValue(ImageStoreDetailVO imageStorageDetailVO);
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
import java.util.List;
import java.util.Map;

import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.framework.config.impl.ConfigurationVO;
import org.springframework.stereotype.Component;

import com.cloud.utils.crypt.DBEncryptionUtil;
Expand All @@ -35,9 +37,13 @@
import org.apache.cloudstack.framework.config.ScopedConfigStorage;
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;

import javax.inject.Inject;

@Component
public class ImageStoreDetailsDaoImpl extends ResourceDetailsDaoBase<ImageStoreDetailVO> implements ImageStoreDetailsDao, ScopedConfigStorage {

@Inject
private ConfigurationDao _configDao;
protected final SearchBuilder<ImageStoreDetailVO> storeSearch;

public ImageStoreDetailsDaoImpl() {
Expand Down Expand Up @@ -108,12 +114,20 @@ public ImageStoreDetailVO findDetail(long storeId, String name) {
@Override
public String getConfigValue(long id, ConfigKey<?> key) {
ImageStoreDetailVO vo = findDetail(id, key.key());
return vo == null ? null : vo.getValue();
return vo == null ? null : getActualValue(vo);
}

@Override
public void addDetail(long resourceId, String key, String value, boolean display) {
super.addDetail(new ImageStoreDetailVO(resourceId, key, value, display));
}

@Override
public String getActualValue(ImageStoreDetailVO imageStorageDetailVO) {
ConfigurationVO configurationVO = _configDao.findByName(imageStorageDetailVO.getName());
if (configurationVO != null && configurationVO.isEncrypted()) {
return DBEncryptionUtil.decrypt(imageStorageDetailVO.getValue());
}
return imageStorageDetailVO.getValue();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@
import com.cloud.utils.db.GenericDao;

public interface StoragePoolDetailsDao extends GenericDao<StoragePoolDetailVO, Long>, ResourceDetailsDao<StoragePoolDetailVO> {
String getActualValue(StoragePoolDetailVO storagePoolDetailVO);
}