diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a3e877e..08fae39 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -22,7 +22,7 @@ ext { } dependencies { - implementation(platform("org.springframework:spring-framework-bom:${springFrameworkVersion}")) + implementation(platform(libs.spring.framework.bom)) implementation("org.springframework:spring-core") implementation 'org.asciidoctor:asciidoctor-gradle-jvm:3.3.2' implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0' diff --git a/buildSrc/gradle/libs.versions.toml b/buildSrc/gradle/libs.versions.toml new file mode 120000 index 0000000..d9b1d4e --- /dev/null +++ b/buildSrc/gradle/libs.versions.toml @@ -0,0 +1 @@ +../../gradle/libs.versions.toml \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index f4c3f19..83c4cf2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,13 +1,3 @@ version=2.1.0-SNAPSHOT -springBootVersion=3.1.11 -springFrameworkVersion=6.0.20 -springSecurityVersion=6.1.9 -junitVersion=5.9.1 -mockitoVersion=4.8.1 -assertjVersion=3.23.1 -servletApiVersion=6.0.0 -httpclient5Version=5.1.4 -kerbyVersion=2.0.3 -okhttp3Version=3.14.9 develocityVersion=3.17.2 springGeConventionsVersion=0.0.17 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..51995e2 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,15 @@ +[libraries] +assertj-core='org.assertj:assertj-core:3.26.0' +httpclient5="org.apache.httpcomponents.client5:httpclient5:5.3.1" +junit-bom='org.junit:junit-bom:5.10.2' +kerby='org.apache.kerby:kerb-simplekdc:2.0.3' +mockito-bom='org.mockito:mockito-bom:5.12.0' +okhttp3='com.squareup.okhttp3:okhttp:3.14.9' +okhttp3-mockwebserver='com.squareup.okhttp3:mockwebserver:3.14.9' +servlet-api='jakarta.servlet:jakarta.servlet-api:6.0.0' +spring-framework-bom='org.springframework:spring-framework-bom:6.1.8' +spring-security-bom='org.springframework.security:spring-security-bom:6.3.0' + +[plugins] +spring-boot='org.springframework.boot:3.3.0' +dependency-management='io.spring.dependency-management:1.1.5' diff --git a/settings.gradle b/settings.gradle index 05bf621..fabf7fc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,8 +11,6 @@ pluginManagement { } } plugins { - id 'org.springframework.boot' version "$springBootVersion" - id 'io.spring.dependency-management' version '1.1.0' id 'com.gradle.develocity' version "$develocityVersion" id 'io.spring.ge.conventions' version "$springGeConventionsVersion" } diff --git a/spring-security-kerberos-client/spring-security-kerberos-client.gradle b/spring-security-kerberos-client/spring-security-kerberos-client.gradle index 589a8cd..3707eb6 100644 --- a/spring-security-kerberos-client/spring-security-kerberos-client.gradle +++ b/spring-security-kerberos-client/spring-security-kerberos-client.gradle @@ -10,7 +10,7 @@ dependencies { implementation project(':spring-security-kerberos-web') // api('org.apache.httpcomponents:httpclient') api('org.springframework:spring-web') - api('org.apache.httpcomponents.client5:httpclient5') + api libs.httpclient5 optional 'org.springframework.security:spring-security-ldap' // api('org.springframework.security:spring-security-web') // api('jakarta.servlet:jakarta.servlet-api') @@ -19,6 +19,6 @@ dependencies { testImplementation 'org.springframework.security:spring-security-config' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.mockito:mockito-junit-jupiter' - testImplementation 'org.assertj:assertj-core' - testImplementation 'com.squareup.okhttp3:mockwebserver' + testImplementation libs.assertj.core + testImplementation libs.okhttp3.mockwebserver } diff --git a/spring-security-kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java b/spring-security-kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java index fe2b278..e75c5e1 100644 --- a/spring-security-kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java +++ b/spring-security-kerberos-client/src/main/java/org/springframework/security/kerberos/client/KerberosRestTemplate.java @@ -43,6 +43,7 @@ import org.apache.hc.client5.http.auth.Credentials; import org.apache.hc.client5.http.auth.KerberosConfig; import org.apache.hc.client5.http.auth.StandardAuthScheme; import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider; import org.apache.hc.client5.http.impl.auth.SPNegoSchemeFactory; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; @@ -199,6 +200,10 @@ public class KerberosRestTemplate extends RestTemplate { .build(); builder.setDefaultAuthSchemeRegistry(authSchemeRegistry); + RequestConfig negotiate = RequestConfig.copy(RequestConfig.DEFAULT) + .setTargetPreferredAuthSchemes(Set.of(StandardAuthScheme.SPNEGO, StandardAuthScheme.KERBEROS)) + .build(); + builder.setDefaultRequestConfig(negotiate); BasicCredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(new AuthScope(null, -1), credentials); builder.setDefaultCredentialsProvider(credentialsProvider); diff --git a/spring-security-kerberos-core/spring-security-kerberos-core.gradle b/spring-security-kerberos-core/spring-security-kerberos-core.gradle index 712aa73..9c9c7ad 100644 --- a/spring-security-kerberos-core/spring-security-kerberos-core.gradle +++ b/spring-security-kerberos-core/spring-security-kerberos-core.gradle @@ -9,5 +9,5 @@ dependencies { api('org.springframework.security:spring-security-core') testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.mockito:mockito-junit-jupiter' - testImplementation 'org.assertj:assertj-core' + testImplementation libs.assertj.core } diff --git a/spring-security-kerberos-management/spring-security-kerberos-management.gradle b/spring-security-kerberos-management/spring-security-kerberos-management.gradle index fe72e2b..ee56f6f 100644 --- a/spring-security-kerberos-management/spring-security-kerberos-management.gradle +++ b/spring-security-kerberos-management/spring-security-kerberos-management.gradle @@ -9,16 +9,16 @@ javaPlatform { description = 'Spring Security Kerberos Management' dependencies { - api platform("org.springframework:spring-framework-bom:$springFrameworkVersion") - api platform("org.springframework.security:spring-security-bom:$springSecurityVersion") - api platform("org.junit:junit-bom:$junitVersion") - api platform("org.mockito:mockito-bom:$mockitoVersion") + api platform(libs.spring.framework.bom) + api platform(libs.spring.security.bom) + api platform(libs.junit.bom) + api platform(libs.mockito.bom) constraints { - api "org.apache.httpcomponents.client5:httpclient5:$httpclient5Version" - api "org.assertj:assertj-core:$assertjVersion" - api "jakarta.servlet:jakarta.servlet-api:$servletApiVersion" - api "org.apache.kerby:kerb-simplekdc:$kerbyVersion" - api "com.squareup.okhttp3:mockwebserver:$okhttp3Version" - api "com.squareup.okhttp3:okhttp:$okhttp3Version" + api libs.httpclient5 + api libs.assertj.core + api libs.servlet.api + api libs.kerby + api libs.okhttp3.mockwebserver + api libs.okhttp3 } } diff --git a/spring-security-kerberos-samples/sec-client-rest-template/sec-client-rest-template.gradle b/spring-security-kerberos-samples/sec-client-rest-template/sec-client-rest-template.gradle index 3235d9f..9b3bbcf 100644 --- a/spring-security-kerberos-samples/sec-client-rest-template/sec-client-rest-template.gradle +++ b/spring-security-kerberos-samples/sec-client-rest-template/sec-client-rest-template.gradle @@ -1,7 +1,7 @@ plugins { id 'org.springframework.security.kerberos.sample' - id 'org.springframework.boot' - id 'io.spring.dependency-management' + alias libs.plugins.spring.boot + alias libs.plugins.dependency.management } description = 'Security Client RestTemplate Sample' diff --git a/spring-security-kerberos-samples/sec-server-client-auth/sec-server-client-auth.gradle b/spring-security-kerberos-samples/sec-server-client-auth/sec-server-client-auth.gradle index 196226c..495d02d 100644 --- a/spring-security-kerberos-samples/sec-server-client-auth/sec-server-client-auth.gradle +++ b/spring-security-kerberos-samples/sec-server-client-auth/sec-server-client-auth.gradle @@ -1,7 +1,7 @@ plugins { id 'org.springframework.security.kerberos.sample' - id 'org.springframework.boot' - id 'io.spring.dependency-management' + alias libs.plugins.spring.boot + alias libs.plugins.dependency.management } description = 'Security Server Client Auth Sample' diff --git a/spring-security-kerberos-samples/sec-server-spnego-form-auth/sec-server-spnego-form-auth.gradle b/spring-security-kerberos-samples/sec-server-spnego-form-auth/sec-server-spnego-form-auth.gradle index 43aafbd..405eee6 100644 --- a/spring-security-kerberos-samples/sec-server-spnego-form-auth/sec-server-spnego-form-auth.gradle +++ b/spring-security-kerberos-samples/sec-server-spnego-form-auth/sec-server-spnego-form-auth.gradle @@ -1,7 +1,7 @@ plugins { id 'org.springframework.security.kerberos.sample' - id 'org.springframework.boot' - id 'io.spring.dependency-management' + alias libs.plugins.spring.boot + alias libs.plugins.dependency.management } description = 'Security Server Spnego and Form Auth Sample' diff --git a/spring-security-kerberos-samples/sec-server-win-auth/sec-server-win-auth.gradle b/spring-security-kerberos-samples/sec-server-win-auth/sec-server-win-auth.gradle index adec533..415d423 100644 --- a/spring-security-kerberos-samples/sec-server-win-auth/sec-server-win-auth.gradle +++ b/spring-security-kerberos-samples/sec-server-win-auth/sec-server-win-auth.gradle @@ -1,7 +1,7 @@ plugins { id 'org.springframework.security.kerberos.sample' - id 'org.springframework.boot' - id 'io.spring.dependency-management' + alias libs.plugins.spring.boot + alias libs.plugins.dependency.management } description = 'Security Server Win Auth Sample' diff --git a/spring-security-kerberos-web/spring-security-kerberos-web.gradle b/spring-security-kerberos-web/spring-security-kerberos-web.gradle index 95e18c3..2e18440 100644 --- a/spring-security-kerberos-web/spring-security-kerberos-web.gradle +++ b/spring-security-kerberos-web/spring-security-kerberos-web.gradle @@ -8,10 +8,10 @@ dependencies { management platform(project(":spring-security-kerberos-management")) implementation project(':spring-security-kerberos-core') api('org.springframework.security:spring-security-web') - api('jakarta.servlet:jakarta.servlet-api') + api(libs.servlet.api) testImplementation 'org.springframework:spring-test' testImplementation 'org.springframework.security:spring-security-config' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.mockito:mockito-junit-jupiter' - testImplementation 'org.assertj:assertj-core' + testImplementation libs.assertj.core }