@Bean
    ArmeriaServerConfigurator actuatorServerConfigurator(
            WebEndpointsSupplier endpointsSupplier,
            Optional<HealthEndpointGroups> healthEndpointGroups,
            EndpointMediaTypes mediaTypes,
            WebEndpointProperties properties,
            HttpCodeStatusMapper statusMapper,
            CorsEndpointProperties corsProperties,
            ConfigurableEnvironment environment,
            ManagementServerProperties serverProperties,
            BeanFactory beanFactory,
            ArmeriaSettings armeriaSettings) {
        return sb -> {
            if (serverProperties.getSsl() != null && serverProperties.getSsl().getKeyStore() != null) {
                logger.warn("Armeria doesn't support management.server.ssl using different keystore, " +
                            "it will use the keystore from armeria.ssl instead.");
            }
            final Integer managementPort = obtainManagementServerPort(sb, beanFactory, serverProperties);
            if (managementPort != null) {
                addLocalManagementPortPropertyAlias(environment, managementPort);
            }

            final Integer internalServicePort = getExposedInternalServicePort(beanFactory, armeriaSettings);
            final CorsServiceBuilder cors = corsServiceBuilder(corsProperties);
            final Collection<ExposableWebEndpoint> endpoints = endpointsSupplier.getEndpoints();
            if (HAS_WEB_SERVER_NAMESPACE) {
                final List<Integer> exposedPorts = Stream.of(managementPort, internalServicePort)
                                                         .filter(Objects::nonNull)
                                                         .collect(toImmutableList());
                // We can add additional path for health endpoint groups only when server namespace exists.
                healthEndpointGroups.ifPresent(groups -> {
                    if (!groups.getNames().isEmpty()) {
                        endpoints.stream()
                                 .filter(endpoint -> endpoint.getEndpointId().equals(HealthEndpoint.ID))
                                 .findFirst()
                                 .ifPresent(endpoint -> addAdditionalPath(sb, exposedPorts, endpoint,
                                                                          statusMapper, cors, groups));
                    }
                });
            }

            final ImmutableList.Builder<Map.Entry<EndpointMapping, Integer>> endpointMappingBuilder =
                    ImmutableList.builder();

            if (internalServicePort == null && managementPort == null) {
                endpointMappingBuilder.add(
                        Maps.immutableEntry(new EndpointMapping(properties.getBasePath()), null));
            } else {
                if (managementPort != null) {
                    endpointMappingBuilder.add(
                            Maps.immutableEntry(new EndpointMapping(serverProperties.getBasePath() +
                                                                    properties.getBasePath()),
                                                managementPort));
                }
                // If internal-services.port != management.server.port or management.server has its own address
                // We need to add actuator to internal-services port without base-path,
                if (internalServicePort != null &&
                    (!internalServicePort.equals(managementPort) ||
                     serverProperties.getAddress() != null)) {
                    endpointMappingBuilder.add(
                            Maps.immutableEntry(new EndpointMapping(properties.getBasePath()),
                                                internalServicePort));
                }
            }
            endpointMappingBuilder.build()
                                  .forEach(entry -> configureExposableWebEndpoint(sb, entry.getValue(),
                                                                                  endpoints, statusMapper,
                                                                                  mediaTypes, entry.getKey(),
                                                                                  cors, properties));

            if (cors != null) {
                sb.routeDecorator().pathPrefix("/").build(cors.newDecorator());
            }
        };
    }
Returns a {@link HttpCodeStatusMapper}.
See <a href="https://github.com/spring-projects/spring-boot/blob/9643dbeed26268f37d37c22385704de8911b8f21/spring-boot-project/spring-boot-docs/src/docs/asciidoc/actuator/endpoints.adoc#writing-custom-healthindicators">writing-custom-healthindicators</a>.
spring/boot3-actuator-autoconfigure/src/main/java/com/linecorp/armeria/spring/actuate/ArmeriaSpringActuatorAutoConfiguration.java