From 8c1b736bb02bd33781e208ce325f1c658b164a3d Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 3 Oct 2016 10:40:46 +0200 Subject: [PATCH] Fix list property to be mutable Closes gh-7068 --- .../actuate/autoconfigure/ManagementServerProperties.java | 5 +++-- .../ManagementServerPropertiesAutoConfigurationTests.java | 7 +++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/ManagementServerProperties.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/ManagementServerProperties.java index 0c7447bc71b..29c05c0bdf4 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/ManagementServerProperties.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/ManagementServerProperties.java @@ -17,6 +17,7 @@ package org.springframework.boot.actuate.autoconfigure; import java.net.InetAddress; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -178,7 +179,7 @@ public class ManagementServerProperties implements SecurityPrerequisite { /** * Comma-separated list of roles that can access the management endpoint. */ - private List roles = Collections.singletonList("ADMIN"); + private List roles = new ArrayList(Collections.singletonList("ADMIN")); /** * Session creating policy to use (always, never, if_required, stateless). @@ -199,7 +200,7 @@ public class ManagementServerProperties implements SecurityPrerequisite { @Deprecated public void setRole(String role) { - this.roles = Collections.singletonList(role); + this.roles = new ArrayList(Collections.singletonList(role)); } public List getRoles() { diff --git a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/ManagementServerPropertiesAutoConfigurationTests.java b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/ManagementServerPropertiesAutoConfigurationTests.java index 091795984c7..ffc5e53c3e4 100644 --- a/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/ManagementServerPropertiesAutoConfigurationTests.java +++ b/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/autoconfigure/ManagementServerPropertiesAutoConfigurationTests.java @@ -80,6 +80,13 @@ public class ManagementServerPropertiesAutoConfigurationTests { assertThat(properties.getSecurity().getRoles()).containsOnly("FOO"); } + @Test + public void managementRolesAllowsIndexedAccess() { + ManagementServerProperties properties = load( + "management.security.roles[0]=FOO"); + assertThat(properties.getSecurity().getRoles()).containsOnly("FOO"); + } + @Test public void managementRolesSetMultipleRoles() { ManagementServerProperties properties = load(