plugins { id 'java-library' id 'io.spring.dependency-management' version '1.1.7' } group = 'stirling.software' version = '0.46.0' repositories { mavenCentral() maven { url = "https://build.shibboleth.net/maven/releases" } maven { url = "https://maven.pkg.github.com/jcefmaven/jcefmaven" } } java { // 17 is lowest but we support and recommend 21 sourceCompatibility = JavaVersion.VERSION_17 } ext { lombokVersion = "1.18.38" } sourceSets { main { java { if (System.getenv("DOCKER_ENABLE_SECURITY") == "false") { exclude 'stirling/software/enterprise/security/UserAuthenticationFilter.java' exclude 'stirling/software/enterprise/security/UserBasedRateLimitingFilter.java' exclude 'stirling/software/enterprise/security/CustomAuthenticationSuccessHandler.java' exclude 'stirling/software/enterprise/security/CustomLogoutSuccessHandler.java' exclude 'stirling/software/enterprise/security/FirstLoginFilter.java' exclude 'stirling/software/enterprise/security/IPRateLimitingFilter.java' exclude 'stirling/software/enterprise/security/RateLimitResetScheduler.java' exclude 'stirling/software/enterprise/security/CustomAuthenticationFailureHandler.java' exclude 'stirling/software/enterprise/security/InitialSecuritySetup.java' exclude 'stirling/software/enterprise/security/configuration/**' exclude 'stirling/software/enterprise/security/controller/**' exclude 'stirling/software/enterprise/security/database/**' exclude 'stirling/software/enterprise/security/oauth2/**' exclude 'stirling/software/enterprise/security/saml2/**' exclude 'stirling/software/enterprise/security/service/**' exclude 'stirling/software/enterprise/security/session/**' exclude 'stirling/software/enterprise/security/model/ApiKeyAuthenticationToken.java' exclude 'stirling/software/enterprise/security/model/AttemptCounter.java' exclude 'stirling/software/enterprise/security/model/Authority.java' exclude 'stirling/software/enterprise/security/model/BackupNotFoundException.java' exclude 'stirling/software/enterprise/security/model/PersistentLogin.java' exclude 'stirling/software/enterprise/security/model/SessionEntity.java' exclude 'stirling/software/enterprise/security/model/User.java' } } test { java { if (System.getenv("DOCKER_ENABLE_SECURITY") == "false") { exclude 'stirling/software/enterprise/security/**' } } } } } configurations.all { exclude group: 'commons-logging', module: 'commons-logging' exclude group: "org.springframework.boot", module: "spring-boot-starter-tomcat" } dependencyManagement { imports { mavenBom 'org.springframework.boot:spring-boot-dependencies:3.4.5' } } dependencies { implementation project(':common') implementation 'org.springframework.boot:spring-boot-starter-jetty' implementation 'io.swagger.core.v3:swagger-core-jakarta:2.2.30' implementation 'org.springframework:spring-webmvc:6.2.6' implementation 'com.posthog.java:posthog:1.2.0' // https://mvnrepository.com/artifact/com.bucket4j/bucket4j_jdk17 implementation 'com.bucket4j:bucket4j_jdk17-core:8.14.0' implementation 'io.github.pixee:java-security-toolkit:1.2.1' implementation 'org.bouncycastle:bcprov-jdk18on:1.80' if (System.getenv('DOCKER_ENABLE_SECURITY') != 'false') { implementation 'io.micrometer:micrometer-registry-prometheus' implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5:3.1.3.RELEASE' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' implementation "org.springframework.session:spring-session-core:3.4.3" implementation "org.springframework:spring-jdbc:6.2.6" implementation 'com.unboundid.product.scim2:scim2-sdk-client:2.3.5' // Don't upgrade h2database runtimeOnly "com.h2database:h2:2.3.232" runtimeOnly "org.postgresql:postgresql:42.7.5" constraints { implementation "org.opensaml:opensaml-core:$openSamlVersion" implementation "org.opensaml:opensaml-saml-api:$openSamlVersion" implementation "org.opensaml:opensaml-saml-impl:$openSamlVersion" } implementation "org.springframework.security:spring-security-saml2-service-provider:$springSecuritySamlVersion" // implementation 'org.springframework.security:spring-security-core:$springSecuritySamlVersion' implementation 'com.coveo:saml-client:5.0.0' } compileOnly "org.projectlombok:lombok:$lombokVersion" annotationProcessor "org.projectlombok:lombok:$lombokVersion" testImplementation platform('org.junit:junit-bom:5.10.0') testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.springframework.boot:spring-boot-starter-test' // testRuntimeOnly 'org.mockito:mockito-inline:5.2.0' } test { useJUnitPlatform() }