Accept empty filter dispatcher types in auto-configurations

Prior to this commit, the usage of EnumSet.copyOf resulted in exceptions when
the underlying collection was empty.

See gh-22138
This commit is contained in:
dreis2211
2020-06-27 18:14:38 +02:00
committed by Andy Wilkinson
parent abeab73b2c
commit 8c0e302f2e
4 changed files with 29 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -73,7 +73,7 @@ public class SecurityFilterAutoConfiguration {
}
return securityProperties.getFilter().getDispatcherTypes().stream()
.map((type) -> DispatcherType.valueOf(type.name()))
.collect(Collectors.collectingAndThen(Collectors.toSet(), EnumSet::copyOf));
.collect(Collectors.toCollection(() -> EnumSet.noneOf(DispatcherType.class)));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,7 +53,7 @@ class SessionRepositoryFilterConfiguration {
return null;
}
return servletProperties.getFilterDispatcherTypes().stream().map((type) -> DispatcherType.valueOf(type.name()))
.collect(Collectors.collectingAndThen(Collectors.toSet(), EnumSet::copyOf));
.collect(Collectors.toCollection(() -> EnumSet.noneOf(DispatcherType.class)));
}
}