Start here. This is the direct spoken answer to practice first.
Overview
Chain matching chooses the security configuration; authorization matching then chooses a rule inside that chain.
Each SecurityFilterChain has a request matcher that defines whether the chain applies. FilterChainProxy evaluates chains in order and uses the first matching chain, so a request does not combine filters from every matching bean. Inside the selected chain, authorizeHttpRequests evaluates authorization matchers according to their configured order. I keep a deliberate fallback chain so an unmatched application path does not silently bypass security.