AuthorizationMechEval.h [plain text]
#include <string>
#include <map>
#include <security_utilities/refcount.h>
#include "agentquery.h"
#include "AuthorizationRule.h"
#include "authority.h"
#include "session.h"
namespace Authorization {
class AgentMechanismRef : public RefPointer<QueryInvokeMechanism>
{
public:
AgentMechanismRef(const AuthHostType type, Session &session);
};
class AgentMechanismEvaluator
{
public:
AgentMechanismEvaluator(uid_t uid, Session &session, const vector<string>& inMechanisms);
OSStatus run(const AuthValueVector &inArguments, const AuthItemSet &inHints, const AuthorizationToken &auth);
AuthorizationResult authinternal(AuthItemSet &context);
AuthItemSet &hints() { return mHints; }
AuthItemSet &context() { return mContext; }
private:
vector<std::string> mMechanisms;
typedef map<std::string, AgentMechanismRef> ClientMap;
ClientMap mClients;
uid_t mClientUid;
Session &mSession;
AuthItemSet mHints;
AuthItemSet mContext;
AuthItemSet mStickyContext;
};
}