107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			107 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | # Verifies that the configuration suggested in (non-deprecated) example values | ||
|  | # will result in the expected output. | ||
|  | 
 | ||
|  | import ../make-test.nix ({ pkgs, ...} : { | ||
|  |   name = "krb5-with-example-config"; | ||
|  |   meta = with pkgs.stdenv.lib.maintainers; { | ||
|  |     maintainers = [ eqyiel ]; | ||
|  |   }; | ||
|  | 
 | ||
|  |   machine = | ||
|  |     { config, pkgs, ... }: { | ||
|  |       krb5 = { | ||
|  |         enable = true; | ||
|  |         kerberos = pkgs.krb5Full; | ||
|  |         libdefaults = { | ||
|  |           default_realm = "ATHENA.MIT.EDU"; | ||
|  |         }; | ||
|  |         realms = { | ||
|  |           "ATHENA.MIT.EDU" = { | ||
|  |             admin_server = "athena.mit.edu"; | ||
|  |             kdc = "athena.mit.edu"; | ||
|  |           }; | ||
|  |         }; | ||
|  |         domain_realm = { | ||
|  |           "example.com" = "EXAMPLE.COM"; | ||
|  |           ".example.com" = "EXAMPLE.COM"; | ||
|  |         }; | ||
|  |         capaths = { | ||
|  |           "ATHENA.MIT.EDU" = { | ||
|  |             "EXAMPLE.COM" = "."; | ||
|  |           }; | ||
|  |           "EXAMPLE.COM" = { | ||
|  |             "ATHENA.MIT.EDU" = "."; | ||
|  |           }; | ||
|  |         }; | ||
|  |         appdefaults = { | ||
|  |           pam = { | ||
|  |             debug = false; | ||
|  |             ticket_lifetime = 36000; | ||
|  |             renew_lifetime = 36000; | ||
|  |             max_timeout = 30; | ||
|  |             timeout_shift = 2; | ||
|  |             initial_timeout = 1; | ||
|  |           }; | ||
|  |         }; | ||
|  |         plugins = { | ||
|  |           ccselect = { | ||
|  |             disable = "k5identity"; | ||
|  |           }; | ||
|  |         }; | ||
|  |         extraConfig = ''
 | ||
|  |           [logging] | ||
|  |             kdc          = SYSLOG:NOTICE | ||
|  |             admin_server = SYSLOG:NOTICE | ||
|  |             default      = SYSLOG:NOTICE | ||
|  |         '';
 | ||
|  |       }; | ||
|  |     }; | ||
|  | 
 | ||
|  |   testScript = | ||
|  |     let snapshot = pkgs.writeText "krb5-with-example-config.conf" ''
 | ||
|  |       [libdefaults] | ||
|  |         default_realm = ATHENA.MIT.EDU | ||
|  | 
 | ||
|  |       [realms] | ||
|  |         ATHENA.MIT.EDU = { | ||
|  |           admin_server = athena.mit.edu | ||
|  |           kdc = athena.mit.edu | ||
|  |         } | ||
|  | 
 | ||
|  |       [domain_realm] | ||
|  |         .example.com = EXAMPLE.COM | ||
|  |         example.com = EXAMPLE.COM | ||
|  | 
 | ||
|  |       [capaths] | ||
|  |         ATHENA.MIT.EDU = { | ||
|  |           EXAMPLE.COM = . | ||
|  |         } | ||
|  |         EXAMPLE.COM = { | ||
|  |           ATHENA.MIT.EDU = . | ||
|  |         } | ||
|  | 
 | ||
|  |       [appdefaults] | ||
|  |         pam = { | ||
|  |           debug = false | ||
|  |           initial_timeout = 1 | ||
|  |           max_timeout = 30 | ||
|  |           renew_lifetime = 36000 | ||
|  |           ticket_lifetime = 36000 | ||
|  |           timeout_shift = 2 | ||
|  |         } | ||
|  | 
 | ||
|  |       [plugins] | ||
|  |         ccselect = { | ||
|  |           disable = k5identity | ||
|  |         } | ||
|  | 
 | ||
|  |       [logging] | ||
|  |         kdc          = SYSLOG:NOTICE | ||
|  |         admin_server = SYSLOG:NOTICE | ||
|  |         default      = SYSLOG:NOTICE | ||
|  |     '';
 | ||
|  |   in ''
 | ||
|  |     $machine->succeed("diff /etc/krb5.conf ${snapshot}"); | ||
|  |   '';
 | ||
|  | }) |