ADDED src/XMPPEXTERNALAuth.h Index: src/XMPPEXTERNALAuth.h ================================================================== --- /dev/null +++ src/XMPPEXTERNALAuth.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2012, Florian Zeitz + * + * https://webkeks.org/hg/objxmpp/ + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice is present in all copies. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import +#import "XMPPAuthenticator.h" + +/** + * \brief A class to authenticate using SASL EXTERNAL + */ +@interface XMPPEXTERNALAuth: XMPPAuthenticator +/** + * Creates a new autoreleased XMPPEXTERNALAuth. + * + * \return A new autoreleased XMPPEXTERNALAuth + */ ++ EXTERNALAuth; + +/** + * Creates a new autoreleased XMPPEXTERNALAuth with an authzid. + * + * \param authzid The authzid to get authorization for + * \return A new autoreleased XMPPEXTERNALAuth + */ ++ EXTERNALAuthWithAuthzid: (OFString*)authzid; +@end ADDED src/XMPPEXTERNALAuth.m Index: src/XMPPEXTERNALAuth.m ================================================================== --- /dev/null +++ src/XMPPEXTERNALAuth.m @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2012, Florian Zeitz + * + * https://webkeks.org/hg/objxmpp/ + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice is present in all copies. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#import "XMPPEXTERNALAuth.h" + +@implementation XMPPEXTERNALAuth: XMPPAuthenticator ++ EXTERNALAuth +{ + return [[[self alloc] initWithAuthcid: nil + password: nil] autorelease]; +} + ++ EXTERNALAuthWithAuthzid: (OFString*)authzid_ +{ + return [[[self alloc] initWithAuthzid: authzid_ + authcid: nil + password: nil] autorelease]; +} + +- (OFDataArray*)initialMessage +{ + OFDataArray *message = [OFDataArray dataArrayWithItemSize: 1]; + + /* authzid */ + if (authzid) + [message addItem: authzid]; + + return message; +} +@end