Мой вопрос связан с ролью и назначением обработчика контекста XACML. Если я правильно понимаю спецификацию OASIS XACML3.0, PEP перехватывает запрос на некоторый ресурс или доступ от клиентского приложения, которое затем использует обработчик контекста для создания собственного объекта контекста XACML, подходящего для обработки PDP. В моем дизайне у меня есть обработчик контекста как глобальный класс с методами для создания объектов запроса и анализа результатов xml. Я представляю, как класс выглядит примерно так:
public static class ContextHandler
{
public static bool CreatePolicy(PolicyType policyName)
{
// Serialize PolicyType to xml document
}
public static PolicyType LoadPolicy(string policyName)
{
// 1. Load policy from db, filesystem...
// 2. Hydrate/deserialize into XACML policy object
// 3. Return PolicyType object
}
public static RequestType BuildRequest(
Dictionary<string, string> subjects,
Dictionary<string, string> resources,
Dictionary<string, string> actions,
Dictionary<string, string> environment)
{
// 1. Create AttributesType collection, populate with subjects, resource...
// 2. Populate RequestType object
// 3. Return Request
}
}
Объекты RequestType
, AttributesType
и другие являются частью контекста XACML.
Это правильный подход для класса обработчика контекста, или я полностью упустил смысл обработчика контекста?
Большое спасибо!