Пример #1
0
 public void DelegateLogging()
 {
     using (KerberosDelegateLogger log = MakeLogger(new List <string>()))
     {
         Assert.IsNotNull(log);
     }
 }
Пример #2
0
    public KerberosExecutor(ITestOutputHelper testOutputHelper, string realm)
    {
        var krb5Config = Krb5Config.Default();

        krb5Config.KdcDefaults.RegisterDefaultPkInitPreAuthHandler = false;

        var logger = new KerberosDelegateLogger(
            (level, categoryName, eventId, scopeState, logState, exception, log) =>
            testOutputHelper.WriteLine($"[{level}] [{categoryName}] {log}")
            );

        _principalService = new FakePrincipalService(realm);

        byte[] krbtgtPassword = new byte[16];

        var krbtgt = new FakeKerberosPrincipal(PrincipalType.Service, "krbtgt", realm, krbtgtPassword);

        _principalService.Add("krbtgt", krbtgt);
        _principalService.Add($"krbtgt/{realm}", krbtgt);

        _options = new ListenerOptions
        {
            Configuration = krb5Config,
            DefaultRealm  = realm,
            RealmLocator  = realm => new FakeRealmService(realm, krb5Config, _principalService),
            Log           = logger,
            IsDebug       = true,
        };

        _kdcListener       = new FakeKdcServer(_options);
        _realm             = realm;
        _servicePrincipals = new List <FakeKerberosPrincipal>();
        _testOutputHelper  = testOutputHelper;
    }