/usr/include/arc/security/ArcPDP/alg/PermitOverridesAlg.h is in nordugrid-arc-dev 4.0.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | #ifndef __ARC_SEC_PERMITOVERRIDESCOMBININGALG_H__
#define __ARC_SEC_PERMITOVERRIDESCOMBININGALG_H__
#include <arc/security/ArcPDP/alg/CombiningAlg.h>
#include <arc/security/ArcPDP/EvaluationCtx.h>
namespace ArcSec {
///Implement the "Permit-Overrides" algorithm
/**Permit-Overrides, scans the policy set which is given as the parameters of "combine"
*method, if gets "permit" result from any policy, then stops scanning and gives "permit"
*as result, otherwise gives "deny".
*/
class PermitOverridesCombiningAlg : public CombiningAlg {
private:
static std::string algId;
public:
PermitOverridesCombiningAlg(){};
virtual ~PermitOverridesCombiningAlg(){};
public:
/**If there is one policy which return positive evaluation result, then omit the
*other policies and return DECISION_PERMIT
*@param ctx This object contains request information which will be used to evaluated
*against policy.
*@param policlies This is a container which contains policy objects.
*@return The combined result according to the algorithm.
*/
virtual Result combine(EvaluationCtx* ctx, std::list<Policy*> policies);
/**Get the identifier*/
virtual const std::string& getalgId(void) const {return algId;};
};
} // namespace ArcSec
#endif /* __ARC_SEC_PERMITOVERRIDESCOMBININGALG_H__ */
|