ascheman commented on code in PR #1976:
URL: https://github.com/apache/maven-resolver/pull/1976#discussion_r3608456500


##########
src/site/markdown/remote-repository-filtering.md:
##########
@@ -218,3 +218,5 @@ This leads to the following "constraints":
 Users of certain Maven Repository Managers (MRM) reported issues with 
filtering, breaking their builds. Usually the issue involves grouped/virtual 
repositories where MRM leaks random resources from member repositories, like 
the `prefixes.txt` is. Naturally, as MRM leaks one member prefixes file, and 
Maven is "tricked" into belief it got proper prefixes file from remote 
repository, builds will fail with message like **Prefix `$PREFIX` NOT allowed 
from `$SERVER_ID`** (where `$PREFIX` is some artifact prefix, and `$SERVER_ID` 
is some remote repository ID).
 
 In this case, user should disable prefix discovery by using 
`-Daether.remoteRepositoryFilter.prefixes.resolvePrefixFiles=false` user 
property to prevent Maven attempting to resolve prefixes file from such broken 
MRMs.
+
+Since 2.0.21, Resolver protects itself against this failure mode: when an 
auto-discovered prefixes file denies a path, the very first denial per remote 
repository is verified against the remote repository itself using a lightweight 
existence check. If the repository actually serves the denied path, the 
auto-discovered prefixes file is provably wrong; a warning naming the 
repository is emitted (report it to the repository administrator) and the file 
is ignored for the rest of the session, so the build proceeds as if no prefixes 
file was published. If the denied path is indeed absent remotely, the file 
remains trusted and no further checks are performed, keeping the extra cost 
bounded at one existence check per remote repository per session. User-provided 
prefix files are considered deliberate and are never second-guessed. The 
verification can be disabled with 
`-Daether.remoteRepositoryFilter.prefixes.verifyDenied=false` (supports 
repository ID suffix as well).

Review Comment:
   Intentional, not a typo: at that point the existence check has just *proven* 
the file wrong — it denies a path the repository demonstrably serves (that's 
the whole trigger condition, we never drop on suspicion). Happy to reword to 
"demonstrably wrong" if that reads less like a typo.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to