Hi there,
in the past days I have come up with a testGroup to test the ooRexx security
manager in a way such
that the tests can be run under ooRexx 3.2, 4.x and 5.0beta, cf.
<https://sourceforge.net/p/oorexx/patches/202/>, where also the output of
running the testGroup on
all three ooRexx versions got supplied to ease inspection.
Analyzing the behaviour of ooRexx 3.2 the following can be observed: one needs
to create a method
object from Rexx code. If that Rexx code contains a "::REQUIRES" directive then
the security manager
will get the message "REQUIRES" sent to it, when the code gets run, *not* when
the code is used to
create the method object!
ooRexx 4.0 introduced the classes .routine and .package. A routine object from
Rexx code that
contains a "::requires" directive will cause the "REQUIRES" message to be sent
to the security
manager, when the routine object gets executed by sending it the call message,
not when creating the
routine object. For a package object the code gets executed at creation time
(.package~time) and
when the code contains a "::requires" directive a security manager gets the
"REQUIRES" message sent
to it.
In ooRexx 4.0 creating a method object executes the "::requires" directive, if
present, but does
*not* send the REQUIRES message to the security manager.
In ooRexx 5.0beta the security manager does not get the "REQUIRES" message sent
to it when
running/calling method and routine objects, nor for package objects that
created!
Here is a table trying to summarize these findings:
ooRexx 3.2.0 ooRexx 4.2.0 ooRexx 5.0.0beta
::requires triggers SecMan? ::requires triggers
SecMan? ::requires triggers SecMan?
m=.method~new not run no *runs!* no *runs!*
no
m~run runs *yes* *not run* *no!* *not run* *no!*
r=.routine~new n/a n/a not run no *runs!*
no
r~call n/a n/a runs *yes* *not run* n*o!*
p=.package~new n/a n/a runs *yes* runs *no!*
All other security manager messages get sent by ooRexx 3.2.0 and ooRexx 4.2.0.
On ooRexx 5.0beta all other security manager messages get sent with the
exception of some of the
"ENVIRONMENT" (for a method and a routine object) and "STREAM" (for a package
object) messages in
certain circumstances that the testgroup uncovers.
Hoping that these findings help identify the locations in ooRexx 5.0beta where
adjustments are
needed for fixing the missing security manager messages, notably the REQUIRES
messages.
---rony
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel