Marc, I agree there needs to be more research into this around symlinks and the canonicalization of "../"
However for this bug I've found, the issue is not how to correctly canonicalize paths. Instead, the issue is that we need to pick one approach within the code I've cited, either to normalize or not. FileClientHelper is already normalizing these paths, so I suggested to just normalize the targetUri/directoryUri within the DirectoryResource, so the rootLength is appropriate. Please look at the code I'm talking about in DirectoryResource.getVariants(), and tell me if I'm making sense?

