From 39c2d43cef0f20950dc616aa48ce6f60b23d7e2e Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 1 Nov 2012 10:48:10 -0400 Subject: [PATCH] Implemented "saml2-metadata" web method to fetch the metadata corresponding to the current server --- UI/MainUI/GNUmakefile | 1 + UI/MainUI/SOGoSAML2Actions.m | 50 ++++++++++++++++++++++++++++++++++++ UI/MainUI/product.plist | 5 ++++ 3 files changed, 56 insertions(+) create mode 100644 UI/MainUI/SOGoSAML2Actions.m diff --git a/UI/MainUI/GNUmakefile b/UI/MainUI/GNUmakefile index bf49f1135..c61968743 100644 --- a/UI/MainUI/GNUmakefile +++ b/UI/MainUI/GNUmakefile @@ -13,6 +13,7 @@ MainUI_OBJC_FILES += \ SOGoRootPage.m \ SOGoUserHomePage.m \ SOGoBrowsersPanel.m \ + SOGoSAML2Actions.m \ UIxLoading.m \ MainUI_RESOURCE_FILES += \ diff --git a/UI/MainUI/SOGoSAML2Actions.m b/UI/MainUI/SOGoSAML2Actions.m new file mode 100644 index 000000000..f08325c3c --- /dev/null +++ b/UI/MainUI/SOGoSAML2Actions.m @@ -0,0 +1,50 @@ +/* SOGoSAML2Actions.m - this file is part of SOGo + * + * Copyright (C) 2012 Inverse inc + * + * Author: Wolfgang Sourdeau + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import +#import +#import + +#import + +@interface SOGoSAML2Actions : WODirectAction +@end + +@implementation SOGoSAML2Actions + +- (WOResponse *) saml2MetadataAction +{ + WOResponse *response; + NSString *metadata; + + response = [context response]; + [response setHeader: @"application/xml; charset=utf-8" + forKey: @"content-type"]; + + metadata = [SOGoSAML2Session metadataInContext: context]; + [response setContentEncoding: NSUTF8StringEncoding]; + [response appendContentString: metadata]; + + return response; +} + +@end diff --git a/UI/MainUI/product.plist b/UI/MainUI/product.plist index 212429a0c..4bbb791db 100644 --- a/UI/MainUI/product.plist +++ b/UI/MainUI/product.plist @@ -119,6 +119,11 @@ pageName = "SOGoRootPage"; actionName = "casProxy"; }; + saml2-metadata = { + protectedBy = ""; + actionClass = "SOGoSAML2Actions"; + actionName = "saml2Metadata"; + }; /* crash = { protectedBy = ""; pageName = "SOGoRootPage";