Browse Source

Improve null-safety of module/spring-boot-actuator

See gh-46926
pull/47029/head
Moritz Halbritter 4 months ago
parent
commit
f51f872c28
  1. 4
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java
  2. 4
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEventsEndpoint.java
  3. 4
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java
  4. 5
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpointWebExtension.java
  5. 2
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/logging/LoggersEndpoint.java
  6. 4
      module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/management/HeapDumpWebEndpoint.java

4
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEvent.java

@ -61,7 +61,7 @@ public class AuditEvent implements Serializable { @@ -61,7 +61,7 @@ public class AuditEvent implements Serializable {
* @param type the event type
* @param data the event data
*/
public AuditEvent(String principal, String type, Map<String, @Nullable Object> data) {
public AuditEvent(@Nullable String principal, String type, Map<String, @Nullable Object> data) {
this(Instant.now(), principal, type, data);
}
@ -72,7 +72,7 @@ public class AuditEvent implements Serializable { @@ -72,7 +72,7 @@ public class AuditEvent implements Serializable {
* @param type the event type
* @param data the event data in the form 'key=value' or simply 'key'
*/
public AuditEvent(String principal, String type, String... data) {
public AuditEvent(@Nullable String principal, String type, String... data) {
this(Instant.now(), principal, type, convert(data));
}

4
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/audit/AuditEventsEndpoint.java

@ -45,8 +45,8 @@ public class AuditEventsEndpoint { @@ -45,8 +45,8 @@ public class AuditEventsEndpoint {
}
@ReadOperation
public AuditEventsDescriptor events(@OptionalParameter String principal, @OptionalParameter OffsetDateTime after,
@OptionalParameter String type) {
public AuditEventsDescriptor events(@OptionalParameter @Nullable String principal,
@OptionalParameter @Nullable OffsetDateTime after, @OptionalParameter @Nullable String type) {
List<AuditEvent> events = this.auditEventRepository.find(principal, getInstant(after), type);
return new AuditEventsDescriptor(events);
}

4
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpoint.java vendored

@ -81,12 +81,12 @@ public class EnvironmentEndpoint { @@ -81,12 +81,12 @@ public class EnvironmentEndpoint {
}
@ReadOperation
public EnvironmentDescriptor environment(@OptionalParameter String pattern) {
public EnvironmentDescriptor environment(@OptionalParameter @Nullable String pattern) {
boolean showUnsanitized = this.showValues.isShown(true);
return getEnvironmentDescriptor(pattern, showUnsanitized);
}
EnvironmentDescriptor getEnvironmentDescriptor(String pattern, boolean showUnsanitized) {
EnvironmentDescriptor getEnvironmentDescriptor(@Nullable String pattern, boolean showUnsanitized) {
if (StringUtils.hasText(pattern)) {
return getEnvironmentDescriptor(Pattern.compile(pattern).asPredicate(), showUnsanitized);
}

5
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/env/EnvironmentEndpointWebExtension.java vendored

@ -18,6 +18,8 @@ package org.springframework.boot.actuate.env; @@ -18,6 +18,8 @@ package org.springframework.boot.actuate.env;
import java.util.Set;
import org.jspecify.annotations.Nullable;
import org.springframework.boot.actuate.endpoint.SecurityContext;
import org.springframework.boot.actuate.endpoint.Show;
import org.springframework.boot.actuate.endpoint.annotation.OptionalParameter;
@ -51,7 +53,8 @@ public class EnvironmentEndpointWebExtension { @@ -51,7 +53,8 @@ public class EnvironmentEndpointWebExtension {
}
@ReadOperation
public EnvironmentDescriptor environment(SecurityContext securityContext, @OptionalParameter String pattern) {
public EnvironmentDescriptor environment(SecurityContext securityContext,
@OptionalParameter @Nullable String pattern) {
boolean showUnsanitized = this.showValues.isShown(securityContext, this.roles);
return this.delegate.getEnvironmentDescriptor(pattern, showUnsanitized);
}

2
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/logging/LoggersEndpoint.java

@ -100,7 +100,7 @@ public class LoggersEndpoint { @@ -100,7 +100,7 @@ public class LoggersEndpoint {
}
@WriteOperation
public void configureLogLevel(@Selector String name, @OptionalParameter LogLevel configuredLevel) {
public void configureLogLevel(@Selector String name, @OptionalParameter @Nullable LogLevel configuredLevel) {
Assert.notNull(name, "'name' must not be empty");
LoggerGroup group = this.loggerGroups.get(name);
if (group != null && group.hasMembers()) {

4
module/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/management/HeapDumpWebEndpoint.java

@ -78,7 +78,7 @@ public class HeapDumpWebEndpoint { @@ -78,7 +78,7 @@ public class HeapDumpWebEndpoint {
}
@ReadOperation
public WebEndpointResponse<Resource> heapDump(@OptionalParameter Boolean live) {
public WebEndpointResponse<Resource> heapDump(@OptionalParameter @Nullable Boolean live) {
try {
if (this.lock.tryLock(this.timeout, TimeUnit.MILLISECONDS)) {
try {
@ -101,7 +101,7 @@ public class HeapDumpWebEndpoint { @@ -101,7 +101,7 @@ public class HeapDumpWebEndpoint {
return new WebEndpointResponse<>(WebEndpointResponse.STATUS_TOO_MANY_REQUESTS);
}
private Resource dumpHeap(Boolean live) throws IOException, InterruptedException {
private Resource dumpHeap(@Nullable Boolean live) throws IOException, InterruptedException {
if (this.heapDumper == null) {
this.heapDumper = createHeapDumper();
}

Loading…
Cancel
Save