Starting migration to new SP library
[shibboleth/cpp-sp.git] / shar / test-client.cpp
1 /*
2  *  Copyright 2001-2005 Internet2
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifdef WIN32
18 # define _CRT_NONSTDC_NO_DEPRECATE 1
19 # define _CRT_SECURE_NO_DEPRECATE 1
20 #endif
21
22 #include <shib-target/shib-target.h>
23 #include <shibsp/SPConfig.h>
24 #include <iostream>
25
26 using namespace shibsp;
27 using namespace shibtarget;
28 using namespace saml;
29 using namespace std;
30
31 int main (int argc, char *argv[])
32 {
33   const char* config=getenv("SHIBCONFIG");
34   if (!config)
35     config=SHIB_CONFIG;
36   const char* schemadir=getenv("SHIBSCHEMAS");
37   if (!schemadir)
38     schemadir=SHIB_SCHEMAS;
39
40   ShibTargetConfig& conf=ShibTargetConfig::getConfig();
41   SPConfig::getConfig().setFeatures(SPConfig::Listener | SPConfig::InProcess);
42   if (!conf.init(schemadir) || !conf.load(config))
43       return -10;
44
45   try {
46       DDF in("ping");
47       DDFJanitor injan(in);
48       in.integer(0L);
49
50       DDF out=conf.getINI()->getListener()->send(in);
51       DDFJanitor outjan(out);
52
53       cerr << 0 << " -> " << out.integer() << "\n";
54   }
55   catch (SAMLException& e) {
56       cerr << "caught SAML exception: " << e.what() << "\n";
57   }
58   
59   conf.shutdown();
60   return 0;
61 }