Skip to content

Commit

Permalink
LDEV-5063 - make bundle detection more strict to avoid false positives
Browse files Browse the repository at this point in the history
  • Loading branch information
michaeloffner committed Aug 9, 2024
1 parent d223426 commit a253f35
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 51 deletions.
38 changes: 19 additions & 19 deletions core/src/main/java/lucee/runtime/config/ConfigAdmin.java
Original file line number Diff line number Diff line change
Expand Up @@ -2214,7 +2214,7 @@ private void getResourceProviders(ResourceProvider[] providers, Query qry, Struc
String cn = ConfigWebUtil.getAsString("class", p, null);
String name = ConfigWebUtil.getAsString("bundleName", p, null);
String version = ConfigWebUtil.getAsString("bundleVersion", p, null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(p, null, ThreadLocalPageContext.getConfig().getIdentification());
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(p, null, false, ThreadLocalPageContext.getConfig().getIdentification());
String scheme = Caster.toString(p.get("scheme", null), null);
if (StringUtil.isEmpty(scheme)) {
try {
Expand Down Expand Up @@ -4789,7 +4789,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.isBundle()) {
_updateCache(cd);
reloadNecessary = true;
Expand All @@ -4804,7 +4804,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String _id = map.get("id");
if (!StringUtil.isEmpty(_id) && cd != null && cd.hasClass()) {
_updateCacheHandler(_id, cd);
Expand All @@ -4820,7 +4820,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.hasClass()) {
_updateSearchEngine(cd);
reloadNecessary = true;
Expand All @@ -4835,7 +4835,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String scheme = map.get("scheme");
if (cd != null && cd.hasClass() && !StringUtil.isEmpty(scheme)) {
Struct args = new StructImpl(Struct.TYPE_LINKED);
Expand All @@ -4854,7 +4854,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);

if (cd != null && cd.hasClass()) {
_updateORMEngine(cd);
Expand All @@ -4870,7 +4870,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);

if (cd != null && cd.hasClass()) {
_updateWebserviceHandler(cd);
Expand All @@ -4886,7 +4886,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.hasClass()) {
_updateMonitorEnabled(true);
_updateMonitor(cd, map.get("type"), map.get("name"), true);
Expand All @@ -4902,7 +4902,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String _label = map.get("label");
String _id = map.get("id");
String _dsn = map.get("connectionString");
Expand All @@ -4921,7 +4921,7 @@ public void updateRHExtension(Config config, RHExtension rhext, boolean reload,
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String cfc = map.get("component");

// class
Expand Down Expand Up @@ -5001,7 +5001,7 @@ else if (!StringUtil.isEmpty(cfc, true)) {
// id
String id = Caster.toString(map.get("id"), null);
// class
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
// component path
String cfcPath = Caster.toString(map.get("cfcPath"), null);
if (StringUtil.isEmpty(cfcPath)) cfcPath = Caster.toString(map.get("cfc-path"), null);
Expand Down Expand Up @@ -5137,7 +5137,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String _id = map.get("id");

if (!StringUtil.isEmpty(_id) && cd != null && cd.hasClass()) {
Expand All @@ -5154,7 +5154,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.isBundle()) {
_removeCache(cd);
// reload=true;
Expand All @@ -5169,7 +5169,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.hasClass()) {
_removeSearchEngine();
// reload=true;
Expand All @@ -5184,7 +5184,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String scheme = map.get("scheme");
if (cd != null && cd.hasClass()) {
_removeResourceProvider(scheme);
Expand All @@ -5199,7 +5199,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);

if (cd != null && cd.hasClass()) {
_removeORMEngine();
Expand All @@ -5215,7 +5215,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);

if (cd != null && cd.hasClass()) {
_removeWebserviceHandler();
Expand Down Expand Up @@ -5249,7 +5249,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
if (cd != null && cd.isBundle()) {
_removeJDBCDriver(cd);
}
Expand All @@ -5263,7 +5263,7 @@ private void removeRHExtension(Config config, RHExtension rhe, RHExtension repla
Map<String, String> map;
while (itl.hasNext()) {
map = itl.next();
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, config.getIdentification(), null);
ClassDefinition cd = ClassDefinitionImpl.toClassDefinition(map, false, config.getIdentification(), null);
String cfc = map.get("component");

if (cd != null && cd.isBundle()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -883,7 +883,7 @@ private static <T> ClassDefinition<T> getClassDefinition(Struct data, String pre
data.set(attrName, "com.microsoft.sqlserver.jdbc.SQLServerDriver");
}

ClassDefinition<T> cd = ClassDefinitionImpl.toClassDefinitionImpl(data, prefix, id);
ClassDefinition<T> cd = ClassDefinitionImpl.toClassDefinitionImpl(data, prefix, true, id);
return cd;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ public static DataSource toDataSource(Config config, String name, Struct data, L
if ("com.microsoft.jdbc.sqlserver.SQLServerDriver".equals(className)) {
data.set(KeyConstants._class, "com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(data, null, ThreadLocalPageContext.getConfig().getIdentification());
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(data, null, true, ThreadLocalPageContext.getConfig().getIdentification());

try {
int idle = Caster.toIntValue(data.get(IDLE_TIMEOUT, null), -1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -317,12 +317,12 @@ public static Map<Collection.Key, Pair<Log, Struct>> initLog(Config config, Stru

// appender
Struct sctApp = Caster.toStruct(v.get("appender", null), null);
ClassDefinition cdApp = ClassDefinitionImpl.toClassDefinitionImpl(sctApp, null, config.getIdentification());
ClassDefinition cdApp = ClassDefinitionImpl.toClassDefinitionImpl(sctApp, null, false, config.getIdentification());
if (!cdApp.isBundle()) cdApp = ((ConfigPro) config).getLogEngine().appenderClassDefintion(cdApp.getClassName());

// layout
Struct sctLay = Caster.toStruct(v.get("layout", null), null);
ClassDefinition cdLay = ClassDefinitionImpl.toClassDefinitionImpl(sctLay, null, config.getIdentification());
ClassDefinition cdLay = ClassDefinitionImpl.toClassDefinitionImpl(sctLay, null, false, config.getIdentification());
if (!cdLay.isBundle()) cdLay = ((ConfigPro) config).getLogEngine().appenderClassDefintion(cdLay.getClassName());

if (cdApp != null && cdApp.hasClass()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1002,7 +1002,7 @@ public static CacheConnection toCacheConnection(Config config, String name, Stru

public static CacheConnection toCacheConnection(Config config, String name, Struct data) throws PageException {
// class definition
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(data, null, config.getIdentification());
ClassDefinition cd = ClassDefinitionImpl.toClassDefinitionImpl(data, null, true, config.getIdentification());

CacheConnectionImpl cc = new CacheConnectionImpl(config, name, cd, Caster.toStruct(data.get(KeyConstants._custom, null), null),
Caster.toBooleanValue(data.get(KeyConstants._readonly, null), false), Caster.toBooleanValue(data.get(KeyConstants._storage, null), false));
Expand Down
Loading

0 comments on commit a253f35

Please sign in to comment.