]
James Perkins edited comment on WFCORE-4474 at 6/10/19 12:21 PM:
-----------------------------------------------------------------
I don't think there is much we can really do here TBH. There is a
[{{FileCorrector}}|https://github.com/wildfly/wildfly-core/blob/5a12c1bad47db0bfbf836b279d262bdf352d16c7/logging/src/main/java/org/jboss/as/logging/correctors/FileCorrector.java#L33-L44]
that sets the {{relative-to}} attribute if it was previously set and the {{path}} was
deemed *not* to be an absolute path. It's been like that for a long time so I
don't think we can really change that behavior at this point.
For some of the failures you'd need to quote the path in the operation so CLI can
parse it. For example the {{C:*server.log}} in CLI should be
{code}
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path="C:*server.log"})
{code}
That would result in the {{relative-to}} being set though so you'd end up with a path
like : {{C:\servers\wildfly\standalone\logs\C:*server.log}}
was (Author: jamezp):
I don't think there is much we can really do here TBH. There is a
[{{FileCorrect}}|https://github.com/wildfly/wildfly-core/blob/5a12c1bad47db0bfbf836b279d262bdf352d16c7/logging/src/main/java/org/jboss/as/logging/correctors/FileCorrector.java#L33-L44]
that sets the {{relative-to}} attribute if it was previously set and the {{path}} was
deemed *not* to be an absolute path. It's been like that for a long time so I
don't think we can really change that behavior at this point.
For some of the failures you'd need to quote the path in the operation so CLI can
parse it. For example the {{C:*server.log}} in CLI should be
{code}
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path="C:*server.log"})
{code}
That would result in the {{relative-to}} being set though so you'd end up with a path
like : {{C:\servers\wildfly\standalone\logs\C:*server.log}}
Missing path validation of a log file while update path
--------------------------------------------------------
Key: WFCORE-4474
URL:
https://issues.jboss.org/browse/WFCORE-4474
Project: WildFly Core
Issue Type: Bug
Components: Logging
Affects Versions: 9.0.0.Beta4
Reporter: Vratislav Marek
Assignee: James Perkins
Priority: Major
After the first successful set of a valid path, you can set an invalid path.
It is can be relative to that while "relative-to" parameter is overridden, the
validator doesn't validate it.
Discovered on Windows.
A code block is divided, but it is holding sequence to reproduce.
_This works as expected._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
:> at index 61:
D:\\Tests\\clear\\wildfly-17.0.0.Beta1-SNAPSHOT\\standalone\\log\\C:/server.log",
"rolled-back" => true
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
:> at index 61:
D:\\Tests\\clear\\wildfly-17.0.0.Beta1-SNAPSHOT\\standalone\\log\\C:server.log",
"rolled-back" => true
}
{code}
_Still works as expected. But After this successful write-attribute command, it that
changing._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\\server.log})
{"outcome" => "success"}
{code}
*Now there is a problem, it that not works as expected. The validator accepts invalid
path.*
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
{code}
_But not accept all invalid paths._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:*server.log})
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0158: Operation handler failed:
java.nio.file.InvalidPathException: Illegal char <
*> at index 2: C:*server.log",
"rolled-back" => true
}
{code}
_Verification if the unsuccessful update changes something. But not._
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\\server.log})
{"outcome" => "success"}
{code}
_Verification if is really set in the property value. Yes_
{code:bash}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:\\server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:/server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:/server.log"}
}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:write-attribute(name=file,value={path=C:\server.log})
{"outcome" => "success"}
[standalone@localhost:9990 /]
/subsystem=logging/periodic-rotating-file-handler=FILE:read-attribute(name=file)
{
"outcome" => "success",
"result" => {"path" => "C:server.log"}
}
{code}