AppDelegate.m
1 // 2 // AppDelegate.m 3 // GSSSampleOSX 4 // 5 // Created by Love Hörnquist Åstrand on 2011-11-13. 6 // 7 8 #import "AppDelegate.h" 9 #import <GSS/GSSItem.h> 10 11 @implementation AppDelegate 12 13 @synthesize window = _window; 14 @synthesize tableview = _tableview; 15 @synthesize credentials = _credentials; 16 @synthesize arrayController = _arrayController; 17 18 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification 19 { 20 [self refreshCredentials:nil]; 21 } 22 23 - (IBAction)refreshCredentials:(id)sender 24 { 25 _credentials = [[NSMutableArray alloc] init]; 26 27 CFMutableDictionaryRef attrs = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); 28 29 CFDictionaryAddValue(attrs, kGSSAttrClass, kGSSAttrClassKerberos); 30 31 CFErrorRef error = NULL; 32 33 CFArrayRef items = GSSItemCopyMatching(attrs, &error); 34 if (items) { 35 CFIndex n, count = CFArrayGetCount(items); 36 for (n = 0; n < count; n++) { 37 CFTypeRef item = CFArrayGetValueAtIndex(items, n); 38 NSLog(@"item %d = %@", (int)n, item); 39 40 NSDictionary *i; 41 42 i = [(__bridge NSDictionary *)item mutableCopy]; 43 [i setValue:@"expire1" forKey:@"kGSSAttrTransientExpire"]; 44 NSLog(@"%@ %@", i, [i className]); 45 [_credentials addObject:i]; 46 } 47 CFRelease(items); 48 } 49 CFRelease(attrs); 50 51 [_credentials addObject:@{ @"kGSSAttrNameDisplay" : @"foo", @"kGSSAttrTransientExpire" : @"expire"}]; 52 53 NSLog(@"%@", _credentials); 54 55 [_arrayController setContent:_credentials]; 56 57 NSLog(@"item %@", [_arrayController valueForKeyPath:@"arrangedObjects.kGSSAttrNameDisplay"]); 58 NSLog(@"item %@", [_arrayController valueForKeyPath:@"arrangedObjects.kGSSAttrTransientExpire"]); 59 60 [_tableview reloadData]; 61 62 63 } 64 @end