× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



On 12-Jul-2017 11:20 -0600, Rob Berendt wrote:
[…]
- modify the security model to accept QRPLOBJ
[…]
- Rewrite the system that if the security model detects QRPLOBJ then
the called program, and the calling program, work out how to use the
new model […]

No need for a blind-acceptance of user_is_authorized whenever QRPLOBJ is detected as the library name for the running program [if that is what is alluded by "accept QRPLOBJ"]; yet, seems [to me] reasonable to just _assume_ the user is [still] authorized.

Nor is there any need for a rewrite; the resolution is as simple as inserting some code that precedes whatever is the existing authority test, to redirect the authority-check against the "correct", the original [name of the] program:

// Str: "New code:"
If pgm_libr='QRPLOBJ'; // this [running] pgm is in QRPLOBJ
// the following function may need to adopt aut to: QRPLOBJ *LIB
qualified_pgm=get_QRPLOBJ_text_qual_name(pgm_name:pgm_libr);
// procedure "get_QRPLOBJ_text_qual_name" can be implemented using
// the CL request Retrieve Object Description (RTVOBJD) or the
// Retrieve Object Description (QUSROBJD) API format OBJD0200;
// the program can adopt the necessary authority to access the
// QRPLOBJ library, for which public authority likely is *EXCLUDE
pgm_name=%subst(qualified_pgm:01:10);
pgm_libr=%subst(qualified_pgm:11:10);
end; // End: "New code:"
// "Existing code:"
Is_Authorized=Chk_Pgm_Aut(pgm_name:pgm_libr);
// per "New code:" action, the user's authority to the correct
// pgm will be tested here [by the chk_pgm_aut procedure] and
// the prior and following existing code continues unchanged …

The only potential issue, is if the authority to the newly recompiled version of the program were changed, to be either less restrictive or more restrictive than was in effect for the original invocation. As a side effect of _only_ REPLACE(*YES) processing, however, the AUT() of the new program would remain unchanged for that recompile alone.

Having a less restrictive authority seems innocuous enough, because the implication is that the user is authorized to both the old and new versions. Yet a more restrictive effect should be of little concern too, IMO; although the program that is running was already accepted as a valid/authorized usage, and that the identical program that will continue to be called [or so we expect, given this situation was ever even an issue, per the program PGM_A apparently not being re-resolved on each new invocation] so arguably should remain "authorized", the apparent intention is that the new program should no longer be authorized to the user -- henceforth that would be dynamically decided [vs a cached decision] and thus immediately enforced, despite the non-dynamic nature of the invocation. Despite this being more "complete", for actually performing the authority check, I expect in most cases, the "blind acceptance" that the program running from a copy in QRPLOBJ might just as well, _assume_ the user is [still] authorized.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.