[ https://issues.apache.org/jira/browse/MENFORCER-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741566#comment-17741566 ]
Bas van Erp commented on MENFORCER-390: --------------------------------------- Running into this as well: {code:java} <configuration> <rules> <requireFilesExist> <message>User security has not been setup correctly! See README.md</message> <files> <file>${project.baseUri}/../scripts/myUserConf.secure</file> <file>${project.baseUri}/../scripts/myUserKey.secure</file> </files> </requireFilesExist> </rules> </configuration>{code} Results in: {code:java} [ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.3.0:enforce (enforce-files-exist) on project my-module: [ERROR] Rule 0: org.apache.maven.enforcer.rules.files.RequireFilesExist failed with message: [ERROR] User security has not been setup correctly! See README.md [ERROR] Some required files are missing: [ERROR] /Users/myname/workspace/myproject/my-module/../scripts/myUserConf.secure [ERROR] /Users/myname/workspace/myproject/my-module/../scripts/myUserKey.secure {code} The files are most definetely present in {{/Users/myname/workspace/myproject/scripts/}} > "requireFilesExist" no longer handles non-canonical paths > --------------------------------------------------------- > > Key: MENFORCER-390 > URL: https://issues.apache.org/jira/browse/MENFORCER-390 > Project: Maven Enforcer Plugin > Issue Type: Bug > Components: requireFilesExist, Standard Rules > Affects Versions: 3.0.0 > Reporter: Gene Smith > Priority: Major > > With the commit to resolve MENFORCER-364, the rule "requireFileExists" checks > that the canonical path of a file is the same as the absolute path. > But not all absolute paths are canonical. > * absolute paths can involve symbolic links > * and they are allowed to have parts which are relative > ** {{/../}} > ** {{/./}}{{}}{{}}{{}} > And when it fails to handle a path, it can report that a file does not exist, > even though the local system will resolve the path. > A blunt solution might be three separate rules: > * requireFileExists > ** the provided path must resolve to a file (which may be a directory or > link) > * requireCanonicalFileExists > ** the provided path must exist as a canonical file > * requireCasesenstiveFileExists > ** the provided path must file a file > ** the file name must have the same case (upper//lower) as the > ** the parts of the path from the file up must have the same case until they > go through a symbolic link > I have used the "nio" package to handle some of stuff before. I will add a > comment with some java code I would start with. Since the outcome here is > very dependent on the use case you pick, the java will be "meta code" with > ??? where you have to know the use case to know the outcome. > but basically, with "nio" you can march up a path checking for symbolic links > and such. > -- This message was sent by Atlassian Jira (v8.20.10#820010)