Describe the bug Prior to Hoxton SR5, routes configured in application.yml were evaluated in the order defined in the configuration file.

With SR5, the order doesn't seem to be honored causing legacy routes to get picked up before specific routes.

Sample Below is a sample output of routing matching for the same route in SR4 and SR5. Route in both cases is /appui/smartBanner.js

SR4

[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,187 DEBUG SimpleRouteLocator []: Matching pattern:/gateway/*hird-party/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,189 DEBUG SimpleRouteLocator []: Matching pattern:/gateway/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,189 DEBUG SimpleRouteLocator []: Matching pattern:/health
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,189 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/featureregistry/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,191 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/getaccountbyid/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,192 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/accounts/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,192 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/upcoming-transactions/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,192 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/customer-addresses/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,193 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/accountsummary
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,193 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/customer/cookie
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,193 DEBUG SimpleRouteLocator []: Matching pattern:/appui/**
[http-nio-8443-exec-1] 19 Jun 2020 12:08:46,196 DEBUG SimpleRouteLocator []: route matched=ZuulRoute{id='appui', path='/appui/**', serviceId='null', url='https://testsample.com/', stripPrefix=false, retryable=null, sensitiveHeaders=[], customSensitiveHeaders=false, }

SR5

http-nio-8443-exec-1] 19 Jun 2020 12:18:22,761 DEBUG SimpleRouteLocator []: Matching pattern:/gateway/**
[http-nio-8443-exec-1] 19 Jun 2020 12:18:22,762 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/accountsummary
[http-nio-8443-exec-1] 19 Jun 2020 12:18:22,762 DEBUG SimpleRouteLocator []: Matching pattern:/appapis/customer/cookie
[http-nio-8443-exec-1] 19 Jun 2020 12:18:22,762 DEBUG SimpleRouteLocator []: Matching pattern:/index.html
[http-nio-8443-exec-1] 19 Jun 2020 12:18:22,762 DEBUG SimpleRouteLocator []: Matching pattern:/*/*
[http-nio-8443-exec-1] 19 Jun 2020 12:18:22,763 DEBUG SimpleRouteLocator []: route matched=ZuulRoute{id='catchall', path='/*/*', serviceId='null', url='https://testsample.com/', stripPrefix=false, retryable=null, sensitiveHeaders=[], customSensitiveHeaders=false, }

application.yml

zuul:
  decodeUrl: false
  forceOriginalQueryStringEncoding: true
  sensitiveHeaders: Cookie,Set-Cookie,Origin
  ignoredHeaders: Access-Control-Allow-Origin
  ignoreSecurityHeaders: false

  # Note that the order below is important for the endpoint to match the correct route.
  # Ex. Partner is before Internal so that /third-party is not picked up by /**.
  routes:
    partner:
      path: /gateway/*hird-party/**

    internal:
      path: /gateway/**

    health:
      path: /health
      strip-prefix: false

    appapisregistry:
      path: /appapis/featureregistry/**

    appapisgetaccountbyid:
      path: /appapis/getaccountbyid/**

    appapistransactions:
      path: /appapis/accounts/**

    appapisupcomingtransactions:
      path: /appapis/upcoming-transactions/**

    appapisaddress:
      path: /appapis/customer-addresses/**

    appapissummary:
      path: /appapis/accountsummary
      strip-prefix: false

    appapiscookie:
      path: /appapis/customer/cookie
      strip-prefix: false

    appui:
      path: /appui/**
      strip-prefix: false

    appweb:
      path: /appweb/**
      strip-prefix: false

    appindex:
      path: /index.html
      strip-prefix: false

    # Note: This must be the last route configured as it is a catch all.
    catchall:
      path: /*/*
      strip-prefix: false

Comment From: bhattankit

Resolved by: https://github.com/spring-projects/spring-boot/issues/21470