From 68b9792ed608c3cf62d5cbb7b66857c67f5278ee Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Fri, 15 Jul 2016 13:01:43 -0700 Subject: [PATCH] Fix FixedAuthoritiesExtractor map extract bug Fix issue where FixedAuthoritiesExtractor would fail to obtain standard item from the map because an incorrect key was used. Fixes gh-6396 --- .../security/oauth2/resource/FixedAuthoritiesExtractor.java | 2 +- .../oauth2/resource/FixedAuthoritiesExtractorTests.java | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractor.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractor.java index 52eb830fc1..9d16dae9a9 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractor.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractor.java @@ -79,7 +79,7 @@ public class FixedAuthoritiesExtractor implements AuthoritiesExtractor { } for (String key : AUTHORITY_KEYS) { if (map.containsKey(key)) { - return map.get(map); + return map.get(key); } } return map; diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractorTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractorTests.java index adf08c876a..9fcc717036 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractorTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/resource/FixedAuthoritiesExtractorTests.java @@ -75,8 +75,10 @@ public class FixedAuthoritiesExtractorTests { @Test public void authoritiesAsListOfMapsWithStandardKey() { - this.map.put("authorities", - Arrays.asList(Collections.singletonMap("role", "ROLE_ADMIN"))); + Map map = new LinkedHashMap(); + map.put("role", "ROLE_ADMIN"); + map.put("extra", "value"); + this.map.put("authorities", Arrays.asList(map)); assertThat(this.extractor.extractAuthorities(this.map).toString()) .isEqualTo("[ROLE_ADMIN]"); }