[ 
https://issues.apache.org/jira/browse/MENFORCER-390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741566#comment-17741566
 ] 

Bas van Erp edited comment on MENFORCER-390 at 7/10/23 11:19 AM:
-----------------------------------------------------------------

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.basedir}/../scripts/myUserConf.secure</file>
        <file>${project.basedir}/../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/}}


was (Author: JIRAUSER300062):
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)

Reply via email to