int main(int argc,char* argv[])
{
- bool verify=true;
+ bool verify=true,validate=false;
char* url_param=nullptr;
char* path_param=nullptr;
char* key_param=nullptr;
prot=argv[++i];
else if (!strcmp(argv[i],"-r") && i+1<argc)
rname=argv[++i];
+ else if (!strcmp(argv[i],"-V"))
+ validate = true;
else if (!strcmp(argv[i],"-ns") && i+1<argc)
rns=argv[++i];
else if (!strcmp(argv[i],"-alg") && i+1<argc)
XMLToolingConfig& xmlconf = XMLToolingConfig::getConfig();
xmlconf.log_config(getenv("OPENSAML_LOG_CONFIG"));
+ if (getenv("OPENSAML_SCHEMAS"))
+ xmlconf.catalog_path = getenv("OPENSAML_SCHEMAS");
SAMLConfig& conf=SAMLConfig::getConfig();
if (!conf.init())
return -2;
auto_ptr_XMLCh wideurl(url_param);
URLInputSource src(wideurl.get());
Wrapper4InputSource dsrc(&src,false);
- doc=xmlconf.getParser().parse(dsrc);
+ if (validate)
+ doc = xmlconf.getValidatingParser().parse(dsrc);
+ else
+ doc = xmlconf.getParser().parse(dsrc);
}
else if (path_param) {
auto_ptr_XMLCh widenit(path_param);
LocalFileInputSource src(widenit.get());
Wrapper4InputSource dsrc(&src,false);
- doc=xmlconf.getParser().parse(dsrc);
+ if (validate)
+ doc = xmlconf.getValidatingParser().parse(dsrc);
+ else
+ doc = xmlconf.getParser().parse(dsrc);
}
else {
StdInInputSource src;
Wrapper4InputSource dsrc(&src,false);
- doc=xmlconf.getParser().parse(dsrc);
+ if (validate)
+ doc = xmlconf.getValidatingParser().parse(dsrc);
+ else
+ doc = xmlconf.getParser().parse(dsrc);
}
// Unmarshall it.
// Attach new signature.
Signature* sig = SignatureBuilder::buildSignature();
- if (alg_param) {
- auto_ptr_XMLCh alg(alg_param);
+ signable->setSignature(sig);
+ auto_ptr_XMLCh alg(alg_param);
+ if (alg.get()) {
sig->setSignatureAlgorithm(alg.get());
}
- if (dig_param) {
- auto_ptr_XMLCh dig(dig_param);
+ auto_ptr_XMLCh dig(dig_param);
+ if (dig.get()) {
dynamic_cast<opensaml::ContentReference*>(sig->getContentReference())->setDigestAlgorithm(dig.get());
}
- signable->setSignature(sig);
// Sign response while re-marshalling.
vector<Signature*> sigs(1,sig);