mirror of
https://github.com/ysoftdevs/DependencyCheck.git
synced 2026-03-19 15:54:52 +01:00
updated to honor noupdate flag for version check and removed some complexity
This commit is contained in:
@@ -21,6 +21,7 @@ import java.io.IOException;
|
|||||||
import java.net.HttpURLConnection;
|
import java.net.HttpURLConnection;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.util.logging.Level;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.owasp.dependencycheck.data.nvdcve.CveDB;
|
import org.owasp.dependencycheck.data.nvdcve.CveDB;
|
||||||
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
|
import org.owasp.dependencycheck.data.nvdcve.DatabaseException;
|
||||||
@@ -28,6 +29,7 @@ import org.owasp.dependencycheck.data.nvdcve.DatabaseProperties;
|
|||||||
import org.owasp.dependencycheck.data.update.exception.UpdateException;
|
import org.owasp.dependencycheck.data.update.exception.UpdateException;
|
||||||
import org.owasp.dependencycheck.utils.DateUtil;
|
import org.owasp.dependencycheck.utils.DateUtil;
|
||||||
import org.owasp.dependencycheck.utils.DependencyVersion;
|
import org.owasp.dependencycheck.utils.DependencyVersion;
|
||||||
|
import org.owasp.dependencycheck.utils.InvalidSettingException;
|
||||||
import org.owasp.dependencycheck.utils.Settings;
|
import org.owasp.dependencycheck.utils.Settings;
|
||||||
import org.owasp.dependencycheck.utils.URLConnectionFactory;
|
import org.owasp.dependencycheck.utils.URLConnectionFactory;
|
||||||
import org.owasp.dependencycheck.utils.URLConnectionFailureException;
|
import org.owasp.dependencycheck.utils.URLConnectionFailureException;
|
||||||
@@ -82,27 +84,33 @@ public class EngineVersionCheck implements CachedWebDataSource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update() throws UpdateException {
|
public void update() throws UpdateException {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
openDatabase();
|
if (Settings.getBoolean(Settings.KEYS.AUTO_UPDATE)) {
|
||||||
LOGGER.debug("Begin Engine Version Check");
|
openDatabase();
|
||||||
final DatabaseProperties properties = cveDB.getDatabaseProperties();
|
LOGGER.debug("Begin Engine Version Check");
|
||||||
final long lastChecked = Long.parseLong(properties.getProperty(ENGINE_VERSION_CHECKED_ON, "0"));
|
final DatabaseProperties properties = cveDB.getDatabaseProperties();
|
||||||
final long now = System.currentTimeMillis();
|
final long lastChecked = Long.parseLong(properties.getProperty(ENGINE_VERSION_CHECKED_ON, "0"));
|
||||||
updateToVersion = properties.getProperty(CURRENT_ENGINE_RELEASE, "");
|
final long now = System.currentTimeMillis();
|
||||||
final String currentVersion = Settings.getString(Settings.KEYS.APPLICATION_VERSION, "0.0.0");
|
updateToVersion = properties.getProperty(CURRENT_ENGINE_RELEASE, "");
|
||||||
LOGGER.debug("Last checked: {}", lastChecked);
|
final String currentVersion = Settings.getString(Settings.KEYS.APPLICATION_VERSION, "0.0.0");
|
||||||
LOGGER.debug("Now: {}", now);
|
LOGGER.debug("Last checked: {}", lastChecked);
|
||||||
LOGGER.debug("Current version: {}", currentVersion);
|
LOGGER.debug("Now: {}", now);
|
||||||
final boolean updateNeeded = shouldUpdate(lastChecked, now, properties, currentVersion);
|
LOGGER.debug("Current version: {}", currentVersion);
|
||||||
if (updateNeeded) {
|
final boolean updateNeeded = shouldUpdate(lastChecked, now, properties, currentVersion);
|
||||||
LOGGER.warn("A new version of dependency-check is available. Consider updating to version {}.",
|
if (updateNeeded) {
|
||||||
updateToVersion);
|
LOGGER.warn("A new version of dependency-check is available. Consider updating to version {}.",
|
||||||
|
updateToVersion);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (DatabaseException ex) {
|
} catch (DatabaseException ex) {
|
||||||
LOGGER.debug("Database Exception opening databases to retrieve properties", ex);
|
LOGGER.debug("Database Exception opening databases to retrieve properties", ex);
|
||||||
throw new UpdateException("Error occured updating database properties.");
|
throw new UpdateException("Error occured updating database properties.");
|
||||||
|
} catch (InvalidSettingException ex) {
|
||||||
|
LOGGER.debug("Unable to determine if autoupdate is enabled", ex);
|
||||||
} finally {
|
} finally {
|
||||||
closeDatabase();
|
closeDatabase();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,9 +129,6 @@ public class EngineVersionCheck implements CachedWebDataSource {
|
|||||||
String currentVersion) throws UpdateException {
|
String currentVersion) throws UpdateException {
|
||||||
//check every 30 days if we know there is an update, otherwise check every 7 days
|
//check every 30 days if we know there is an update, otherwise check every 7 days
|
||||||
int checkRange = 30;
|
int checkRange = 30;
|
||||||
if (updateToVersion == null || updateToVersion.isEmpty()) {
|
|
||||||
checkRange = 7;
|
|
||||||
}
|
|
||||||
if (!DateUtil.withinDateRange(lastChecked, now, checkRange)) {
|
if (!DateUtil.withinDateRange(lastChecked, now, checkRange)) {
|
||||||
LOGGER.debug("Checking web for new version.");
|
LOGGER.debug("Checking web for new version.");
|
||||||
final String currentRelease = getCurrentReleaseVersion();
|
final String currentRelease = getCurrentReleaseVersion();
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ public class EngineVersionCheckTest extends BaseTest {
|
|||||||
updateToVersion = "";
|
updateToVersion = "";
|
||||||
currentVersion = "1.2.5";
|
currentVersion = "1.2.5";
|
||||||
lastChecked = df.parse("2014-12-01").getTime();
|
lastChecked = df.parse("2014-12-01").getTime();
|
||||||
now = df.parse("2014-12-08").getTime();
|
now = df.parse("2015-12-08").getTime();
|
||||||
expResult = true;
|
expResult = true;
|
||||||
instance.setUpdateToVersion(updateToVersion);
|
instance.setUpdateToVersion(updateToVersion);
|
||||||
result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
|
result = instance.shouldUpdate(lastChecked, now, properties, currentVersion);
|
||||||
|
|||||||
Reference in New Issue
Block a user