mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-15 11:00:47 +02:00
Security fixes, enterprise stuff and more (#3241)
# Description of Changes Please provide a summary of the changes, including: - Enable user to add custom JAVA ops with env JAVA_CUSTOM_OPTS - Added support for prometheus (enabled via JAVA_CUSTOM_OPTS + enterprise license) - Changed settings from enterprise naming to 'Premium' - KeygenLicense Check to support offline licenses - Disable URL-to-PDF due to huge security bug - Remove loud Split PDF logs - addUsers renamed to adminSettings - Added Usage analytics page - Add user button to only be enabled based on total users free - Improve Merge memory usage Closes #(issue_number) --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: a <a> Co-authored-by: pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com> Co-authored-by: Connor Yoh <[email protected]>
This commit is contained in:
co-authored by
a <a>
pixeebot[bot] <104101892+pixeebot[bot]@users.noreply.github.com>
Connor Yoh
parent
86becc61de
commit
e151286337
@@ -8,6 +8,8 @@ import org.springframework.core.annotation.Order;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import stirling.software.SPDF.model.ApplicationProperties;
|
||||
import stirling.software.SPDF.model.ApplicationProperties.EnterpriseEdition;
|
||||
import stirling.software.SPDF.model.ApplicationProperties.Premium;
|
||||
|
||||
@Configuration
|
||||
@Order(Ordered.HIGHEST_PRECEDENCE)
|
||||
@@ -22,6 +24,7 @@ public class EEAppConfig {
|
||||
ApplicationProperties applicationProperties, LicenseKeyChecker licenseKeyChecker) {
|
||||
this.applicationProperties = applicationProperties;
|
||||
this.licenseKeyChecker = licenseKeyChecker;
|
||||
migrateEnterpriseSettingsToPremium(this.applicationProperties);
|
||||
}
|
||||
|
||||
@Bean(name = "runningEE")
|
||||
@@ -31,6 +34,74 @@ public class EEAppConfig {
|
||||
|
||||
@Bean(name = "SSOAutoLogin")
|
||||
public boolean ssoAutoLogin() {
|
||||
return applicationProperties.getEnterpriseEdition().isSsoAutoLogin();
|
||||
return applicationProperties.getPremium().getProFeatures().isSsoAutoLogin();
|
||||
}
|
||||
|
||||
// TODO: Remove post migration
|
||||
public void migrateEnterpriseSettingsToPremium(ApplicationProperties applicationProperties) {
|
||||
EnterpriseEdition enterpriseEdition = applicationProperties.getEnterpriseEdition();
|
||||
Premium premium = applicationProperties.getPremium();
|
||||
|
||||
// Only proceed if both objects exist
|
||||
if (enterpriseEdition == null || premium == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Copy the license key if it's set in enterprise but not in premium
|
||||
if (premium.getKey() == null
|
||||
|| premium.getKey().equals("00000000-0000-0000-0000-000000000000")) {
|
||||
if (enterpriseEdition.getKey() != null
|
||||
&& !enterpriseEdition.getKey().equals("00000000-0000-0000-0000-000000000000")) {
|
||||
premium.setKey(enterpriseEdition.getKey());
|
||||
}
|
||||
}
|
||||
|
||||
// Copy enabled state if enterprise is enabled but premium is not
|
||||
if (!premium.isEnabled() && enterpriseEdition.isEnabled()) {
|
||||
premium.setEnabled(true);
|
||||
}
|
||||
|
||||
// Copy SSO auto login setting
|
||||
if (!premium.getProFeatures().isSsoAutoLogin() && enterpriseEdition.isSsoAutoLogin()) {
|
||||
premium.getProFeatures().setSsoAutoLogin(true);
|
||||
}
|
||||
|
||||
// Copy CustomMetadata settings
|
||||
Premium.ProFeatures.CustomMetadata premiumMetadata =
|
||||
premium.getProFeatures().getCustomMetadata();
|
||||
EnterpriseEdition.CustomMetadata enterpriseMetadata = enterpriseEdition.getCustomMetadata();
|
||||
|
||||
if (enterpriseMetadata != null && premiumMetadata != null) {
|
||||
// Copy autoUpdateMetadata setting
|
||||
if (!premiumMetadata.isAutoUpdateMetadata()
|
||||
&& enterpriseMetadata.isAutoUpdateMetadata()) {
|
||||
premiumMetadata.setAutoUpdateMetadata(true);
|
||||
}
|
||||
|
||||
// Copy author if not set in premium but set in enterprise
|
||||
if ((premiumMetadata.getAuthor() == null
|
||||
|| premiumMetadata.getAuthor().trim().isEmpty()
|
||||
|| "username".equals(premiumMetadata.getAuthor()))
|
||||
&& enterpriseMetadata.getAuthor() != null
|
||||
&& !enterpriseMetadata.getAuthor().trim().isEmpty()) {
|
||||
premiumMetadata.setAuthor(enterpriseMetadata.getAuthor());
|
||||
}
|
||||
|
||||
// Copy creator if not set in premium but set in enterprise and different from default
|
||||
if ((premiumMetadata.getCreator() == null
|
||||
|| "Stirling-PDF".equals(premiumMetadata.getCreator()))
|
||||
&& enterpriseMetadata.getCreator() != null
|
||||
&& !"Stirling-PDF".equals(enterpriseMetadata.getCreator())) {
|
||||
premiumMetadata.setCreator(enterpriseMetadata.getCreator());
|
||||
}
|
||||
|
||||
// Copy producer if not set in premium but set in enterprise and different from default
|
||||
if ((premiumMetadata.getProducer() == null
|
||||
|| "Stirling-PDF".equals(premiumMetadata.getProducer()))
|
||||
&& enterpriseMetadata.getProducer() != null
|
||||
&& !"Stirling-PDF".equals(enterpriseMetadata.getProducer())) {
|
||||
premiumMetadata.setProducer(enterpriseMetadata.getProducer());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user