From be3a51be64d21b5766ba7e30f05289d09e1baf70 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 4 Sep 2026 20:12:38 -0700 Subject: [PATCH 1/4] Simplify embedded Tomcat config - phase 1 --- .../api/security/AuthenticationProvider.java | 7 +++++++ .../org/labkey/api/util/ContextListener.java | 19 ++----------------- .../pipeline/api/PipelineServiceImpl.java | 3 ++- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/api/src/org/labkey/api/security/AuthenticationProvider.java b/api/src/org/labkey/api/security/AuthenticationProvider.java index 5617da294df..4f2c386c39f 100644 --- a/api/src/org/labkey/api/security/AuthenticationProvider.java +++ b/api/src/org/labkey/api/security/AuthenticationProvider.java @@ -245,6 +245,8 @@ default boolean isFicamApproved() interface SecondaryAuthenticationProvider> extends ConfigurableAuthenticationProvider { String REQUIRED_FOR = "requiredFor"; + /** Servlet context parameter that the embedded boot layer sets from context.bypass2FA */ + String BYPASS_2FA_PARAMETER = "bypass2FA"; /** * Bypass authentication from this provider. Might be configured via context.bypass2FA=true property in @@ -253,6 +255,11 @@ interface SecondaryAuthenticationProvider getClusterStartupArguments() { List args = new ArrayList<>(); args.add(System.getProperty("java.home") + "/bin/java" + (SystemUtils.IS_OS_WINDOWS ? ".exe" : "")); - File labkeyBootstrap = FileUtil.appendName(new File(System.getProperty("catalina.home")), "labkeyBootstrap.jar"); + File labkeyBootstrap = FileUtil.appendName(StartupEnvironment.getLabKeyHome(), "labkeyBootstrap.jar"); if (!labkeyBootstrap.exists()) { From 0ef1dcb65fbf3c54b192366219d70ab1567f719d Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Tue, 8 Sep 2026 18:35:23 -0700 Subject: [PATCH 2/4] Missed file --- api/src/org/labkey/api/security/Directive.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/org/labkey/api/security/Directive.java b/api/src/org/labkey/api/security/Directive.java index b0acc73b432..d8bfd8b9eba 100644 --- a/api/src/org/labkey/api/security/Directive.java +++ b/api/src/org/labkey/api/security/Directive.java @@ -21,7 +21,7 @@ /** * All CSP directives that support substitutions. These constant names are persisted to the database, so be careful * with any changes. If adding a Directive, make sure to add the corresponding substitutions to the appropriate CSP - * template(s) in LabKeyServer. + * template(s) in server/embedded/src/main/resources/application.properties. */ public enum Directive implements StartupProperty, SafeToRenderEnum { From 4105474b45ed1ab911eb0acbcbef68229db3362c Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Thu, 22 Oct 2026 21:26:29 -0700 Subject: [PATCH 3/4] Claude review --- api/src/org/labkey/api/security/AuthenticationProvider.java | 6 ++---- api/src/org/labkey/api/util/ContextListener.java | 3 +++ .../src/org/labkey/pipeline/api/PipelineServiceImpl.java | 5 +++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/api/src/org/labkey/api/security/AuthenticationProvider.java b/api/src/org/labkey/api/security/AuthenticationProvider.java index 4f2c386c39f..dc99e67c610 100644 --- a/api/src/org/labkey/api/security/AuthenticationProvider.java +++ b/api/src/org/labkey/api/security/AuthenticationProvider.java @@ -36,6 +36,7 @@ import org.labkey.api.util.URLHelper; import org.labkey.api.util.logging.LogHelper; import org.labkey.api.view.ActionURL; +import org.labkey.bootstrap.StartupEnvironment; import java.util.Arrays; import java.util.Collections; @@ -245,9 +246,6 @@ default boolean isFicamApproved() interface SecondaryAuthenticationProvider> extends ConfigurableAuthenticationProvider { String REQUIRED_FOR = "requiredFor"; - /** Servlet context parameter that the embedded boot layer sets from context.bypass2FA */ - String BYPASS_2FA_PARAMETER = "bypass2FA"; - /** * Bypass authentication from this provider. Might be configured via context.bypass2FA=true property in * application.properties to temporarily not require secondary authentication if this has been misconfigured, or @@ -257,7 +255,7 @@ interface SecondaryAuthenticationProvider getClusterStartupArguments() { List args = new ArrayList<>(); args.add(System.getProperty("java.home") + "/bin/java" + (SystemUtils.IS_OS_WINDOWS ? ".exe" : "")); - File labkeyBootstrap = FileUtil.appendName(StartupEnvironment.getLabKeyHome(), "labkeyBootstrap.jar"); + File labkeyHome = StartupEnvironment.getLabKeyHome(); + File labkeyBootstrap = labkeyHome == null ? null : FileUtil.appendName(labkeyHome, "labkeyBootstrap.jar"); - if (!labkeyBootstrap.exists()) + if (labkeyBootstrap == null || !labkeyBootstrap.exists()) { try { From fc6a09c34add5fea291cb53682c8fc045a789cb1 Mon Sep 17 00:00:00 2001 From: labkey-jeckels Date: Fri, 23 Oct 2026 08:28:16 -0700 Subject: [PATCH 4/4] Point Directive Javadoc at labkey-defaults.properties --- api/src/org/labkey/api/security/Directive.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/org/labkey/api/security/Directive.java b/api/src/org/labkey/api/security/Directive.java index d8bfd8b9eba..397f95b55fd 100644 --- a/api/src/org/labkey/api/security/Directive.java +++ b/api/src/org/labkey/api/security/Directive.java @@ -21,7 +21,7 @@ /** * All CSP directives that support substitutions. These constant names are persisted to the database, so be careful * with any changes. If adding a Directive, make sure to add the corresponding substitutions to the appropriate CSP - * template(s) in server/embedded/src/main/resources/application.properties. + * template(s) in server/embedded/src/main/resources/labkey-defaults.properties. */ public enum Directive implements StartupProperty, SafeToRenderEnum {