2 * Copyright (c) 2014, JANET(UK)
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * 3. Neither the name of JANET(UK) nor the names of its contributors
17 * may be used to endorse or promote products derived from this software
18 * without specific prior written permission.
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
25 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
26 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
29 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
31 * OF THE POSSIBILITY OF SUCH DAMAGE.
35 #include "GSSImportName.h"
36 #include "GSSException.h"
37 #include <cache/GSSNameCache.h>
38 #include <datamodel/GSSDisplayStatus.h>
41 void GSSImportName::execute()
51 retVal = function(&minor_status, inputName.toGss(), inputNameType.toGss(), &name);
53 GSSDisplayStatus ds(retVal, minor_status, inputNameType.toGss());
54 errors.set("major_status_message", ds.getMajorMessage().c_str());
55 errors.set("minor_status_message", ds.getMinorMessage().c_str());
56 values->set("errors", errors);
57 this->outputName.setValue(name);
58 key = GSSNameCache::instance()->store(this->outputName);
59 this->outputName.setKey(key);
69 * "gss_name": "base64_encoded_string"
73 JSONObject *GSSImportName::toJSON()
81 values->set("major_status", this->retVal);
82 values->set("minor_status", this->minor_status);
83 values->set("gss_name", this->outputName.getKey().c_str() );
91 GSSImportName::GSSImportName ( gss_imp_name_type fn )
95 inputName = string("");
96 inputNameType.setValue(GSSBuffer( string("{ 1 2 840 113554 1 2 1 4 }") ));
97 values = new JSONObject();
100 GSSImportName::GSSImportName(JSONObject *params, gss_imp_name_type fn)
106 values = new JSONObject();
107 loadParameters(params);
114 bool GSSImportName::loadParameters(JSONObject *params)
120 // Should I zeroOut? MRW -- do initialize here for null inputs
122 /* Main processing */
123 // Easy stuff(*params)
124 if ( params->isNull() )
127 if ( !params->get("input_name").isNull() )
129 if ( params->get("input_name").isString() )
131 std::string input_name = params->get("input_name").string();
132 this->inputName.setValue( input_name );
136 if ( !params->get("input_name_type").isNull() )
138 if ( params->get("input_name_type").isString() )
140 std::string input_name_type = params->get("input_name_type").string();
141 this->inputNameType.setValue( input_name_type );