DelegatingAuthenticationEntryPoint currently uses a LinkedHashMap<RequestMatcher,AuthenticationEntryPoint> which is not ideal since:

1) There is no need to lookup the AuthenticationEntryPoint by RequestMatcher and there is extra unnecessary overhead in using a Map. This is just being done to group the two values together. 2) Order is really the primary concern here since each entry is considered in order, so a List is more appropriate.

DelegatingAuthenticationEntryPoint should use List<RequestMatcherEntry<AuthenticationEntryPoint>> instead.