示例#1
0
 public static AbacAuthorizationPolicy CreateFromGrammar(string policy, WellKnownGrammars grammar = WellKnownGrammars.Bal)
 {
     try
     {
         return(DefaultParser.Parse(policy, grammar));
     }
     catch (Exception exception)
     {
         throw new InvalidOperationException($"Policy can't be parsed using the  grammar {Enum.GetName(typeof(WellKnownGrammars), grammar)} and policy is not created succcesfully.", exception);
     }
 }
示例#2
0
        public static AbacAuthorizationPolicy Parse(string policy, WellKnownGrammars grammar)
        {
            foreach (var parser in _parsers)
            {
                if (parser.CanParse(grammar))
                {
                    return(parser.Parse(policy));
                }
            }

            throw new InvalidOperationException($"The grammar {Enum.GetName(typeof(WellKnownGrammars), grammar)} does not contain any parser registered.");
        }
示例#3
0
 public bool CanParse(WellKnownGrammars grammar)
 {
     return(grammar == WellKnownGrammars.Bal);
 }