1
0
mirror of synced 2026-09-09 02:39:53 +00:00

Compare commits

..

6 Commits

Author SHA1 Message Date
Josh Cummings a2d8a3206a Update to htmlunit 5
This commit updates to htmlunit 5, given that
org.seleniumhq.selenium:htmlunit3-driver 4.48.0 requires it.
Since htmlunit is a test dependency, we can take the
major upgrade in a minor release.

Closes gh-19687

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-08 20:07:29 +00:00
dependabot[bot] 262b2f9366 Bump org.seleniumhq.selenium:selenium-java from 4.43.0 to 4.48.0
Bumps [org.seleniumhq.selenium:selenium-java](https://github.com/SeleniumHQ/selenium) from 4.43.0 to 4.48.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
- [Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.43.0...selenium-4.48.0)

---
updated-dependencies:
- dependency-name: org.seleniumhq.selenium:selenium-java
  dependency-version: 4.48.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 20:07:29 +00:00
Josh Cummings 47d6012d5d Merge branch '7.1.x'
# Conflicts:
#	gradle/libs.versions.toml
2026-09-08 13:29:19 -06:00
Josh Cummings 25c71e28a8 Skip Null List Elements When Mapping CAS Attributes To Authorities
The io.spring.nullability plugin 0.0.16 upgrade tightens NullAway
analysis and flags list elements from the unannotated, raw
List<?> attribute value as possibly null. A null element has no
value to contribute to an authority, consistent with how a null
attribute value as a whole is already skipped.

See gh-19670

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-08 12:50:53 -06:00
Josh Cummings 864c082a38 Mark addGrantedAuthorityCollection Value Parameter Nullable
The io.spring.nullability plugin 0.0.16 upgrade tightens NullAway
analysis and flags the raw Collection<?> element passed into
addGrantedAuthorityCollection(Collection, Object) as possibly null,
even though the method already null-checks it internally.

See gh-19670

Signed-off-by: Josh Cummings <3627351+jzheaux@users.noreply.github.com>
2026-09-08 12:50:53 -06:00
dependabot[bot] ddcdd461e6 Bump io.spring.nullability:io.spring.nullability.gradle.plugin
Bumps [io.spring.nullability:io.spring.nullability.gradle.plugin](https://github.com/spring-gradle-plugins/nullability-plugin) from 0.0.15 to 0.0.16.
- [Release notes](https://github.com/spring-gradle-plugins/nullability-plugin/releases)
- [Commits](https://github.com/spring-gradle-plugins/nullability-plugin/compare/v0.0.15...v0.0.16)

---
updated-dependencies:
- dependency-name: io.spring.nullability:io.spring.nullability.gradle.plugin
  dependency-version: 0.0.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-09-08 12:50:53 -06:00
9 changed files with 683 additions and 275 deletions
@@ -61,7 +61,9 @@ public final class GrantedAuthorityFromAssertionAttributesUserDetailsService
if (value != null) {
if (value instanceof List) {
for (Object o : (List<?>) value) {
grantedAuthorities.add(createSimpleGrantedAuthority(o));
if (o != null) {
grantedAuthorities.add(createSimpleGrantedAuthority(o));
}
}
}
else {
@@ -27,7 +27,7 @@ import java.util.StringTokenizer;
import org.htmlunit.FormEncodingType;
import org.htmlunit.WebClient;
import org.htmlunit.WebRequest;
import org.htmlunit.util.Cookie;
import org.htmlunit.http.Cookie;
import org.htmlunit.util.NameValuePair;
import reactor.core.publisher.Mono;
@@ -26,6 +26,8 @@ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.jspecify.annotations.Nullable;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -121,7 +123,7 @@ public class MapBasedAttributes2GrantedAuthoritiesMapper
* to the given result collection.
* @param value The value to convert to a GrantedAuthority Collection
*/
private void addGrantedAuthorityCollection(Collection<GrantedAuthority> result, Object value) {
private void addGrantedAuthorityCollection(Collection<GrantedAuthority> result, @Nullable Object value) {
if (value == null) {
return;
}
@@ -72,7 +72,7 @@ public class DelegatingSecurityContextAsyncTaskExecutor extends DelegatingSecuri
}
@Override
public final <T> Future<T> submit(Callable<T> task) {
public final <T extends @Nullable Object> Future<T> submit(Callable<T> task) {
return getDelegate().submit(wrap(task));
}
+4 -4
View File
@@ -51,7 +51,7 @@ jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:j
jakarta-xml-bind-jakarta-xml-bind-api = "jakarta.xml.bind:jakarta.xml.bind-api:4.0.5"
ldapsdk = "ldapsdk:ldapsdk:4.1"
net-sourceforge-htmlunit = "net.sourceforge.htmlunit:htmlunit:2.70.0"
org-htmlunit-htmlunit = "org.htmlunit:htmlunit:4.21.0"
org-htmlunit-htmlunit = "org.htmlunit:htmlunit:5.5.0"
org-apache-httpcomponents-httpclient = "org.apache.httpcomponents.client5:httpclient5:5.6.4"
org-apache-kerby-simplekdc='org.apache.kerby:kerb-simplekdc:2.1.2'
org-apache-maven-maven-resolver-provider = "org.apache.maven:maven-resolver-provider:3.9.16"
@@ -79,8 +79,8 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o
org-opensaml-opensaml5-saml-api = { module = "org.opensaml:opensaml-saml-api", version.ref = "org-opensaml5" }
org-opensaml-opensaml5-saml-impl = { module = "org.opensaml:opensaml-saml-impl", version.ref = "org-opensaml5" }
org-python-jython = { module = "org.python:jython", version = "2.5.3" }
org-seleniumhq-selenium-htmlunit-driver = "org.seleniumhq.selenium:htmlunit3-driver:4.43.0"
org-seleniumhq-selenium-selenium-java = "org.seleniumhq.selenium:selenium-java:4.43.0"
org-seleniumhq-selenium-htmlunit-driver = "org.seleniumhq.selenium:htmlunit3-driver:4.48.0"
org-seleniumhq-selenium-selenium-java = "org.seleniumhq.selenium:selenium-java:4.48.0"
org-seleniumhq-selenium-selenium-support = "org.seleniumhq.selenium:selenium-support:3.141.59"
org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3"
org-slf4j-log4j-over-slf4j = "org.slf4j:log4j-over-slf4j:1.7.36"
@@ -104,7 +104,7 @@ org-hidetake-gradle-ssh-plugin = "org.hidetake:gradle-ssh-plugin:2.10.1"
org-jfrog-buildinfo-build-info-extractor-gradle = "org.jfrog.buildinfo:build-info-extractor-gradle:6.0.4"
org-sonarsource-scanner-gradle-sonarqube-gradle-plugin = "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969"
org-instancio-instancio-junit = "org.instancio:instancio-junit:3.7.1"
spring-nullability = 'io.spring.nullability:io.spring.nullability.gradle.plugin:0.0.14'
spring-nullability = 'io.spring.nullability:io.spring.nullability.gradle.plugin:0.0.16'
webauthn4j-core = 'com.webauthn4j:webauthn4j-core:0.31.10.RELEASE'
com-password4j-password4j = { module = "com.password4j:password4j", version.ref = "com-password4j" }
+666 -264
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -42,7 +42,7 @@
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-prettier": "^5.1.3",
"globals": "^15.8.0",
"mocha": "~12.0",
"mocha": "~10.8",
"prettier": "^3.3.2",
"prettier-eslint": "~15.0",
"sinon": "^18.0.0"
@@ -50,7 +50,7 @@ public final class InMemoryOidcSessionRegistry implements OidcSessionRegistry {
}
@Override
public OidcSessionInformation removeSessionInformation(String clientSessionId) {
public @Nullable OidcSessionInformation removeSessionInformation(String clientSessionId) {
OidcSessionInformation information = this.sessions.remove(clientSessionId);
if (information != null) {
this.logger.trace("Removed client session");
@@ -16,6 +16,8 @@
package org.springframework.security.oauth2.client.oidc.session;
import org.jspecify.annotations.Nullable;
import org.springframework.security.oauth2.client.oidc.authentication.logout.OidcLogoutToken;
/**
@@ -44,7 +46,7 @@ public interface OidcSessionRegistry {
* @param clientSessionId the client session
* @return any found {@link OidcSessionInformation}, could be {@code null}
*/
OidcSessionInformation removeSessionInformation(String clientSessionId);
@Nullable OidcSessionInformation removeSessionInformation(String clientSessionId);
/**
* Deregister the OIDC Provider sessions referenced by the provided OIDC Logout Token