X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=shibsp%2Fhandler%2Fimpl%2FAssertionConsumerService.cpp;h=06c5c647f988c54c883faa238f14387ed13a0f99;hb=3031c89c1e9110c5da7710b5694ff863d29ae28c;hp=75b38e8e2922b46eb0fb0b51f4f308177908a0cf;hpb=b85fe8767c9727abe2bbf44722d73dbb6a9ad603;p=shibboleth%2Fsp.git diff --git a/shibsp/handler/impl/AssertionConsumerService.cpp b/shibsp/handler/impl/AssertionConsumerService.cpp index 75b38e8..06c5c64 100644 --- a/shibsp/handler/impl/AssertionConsumerService.cpp +++ b/shibsp/handler/impl/AssertionConsumerService.cpp @@ -233,24 +233,26 @@ void AssertionConsumerService::checkAddress( ResolutionContext* AssertionConsumerService::resolveAttributes( const Application& application, - const HTTPRequest& httpRequest, const saml2md::EntityDescriptor* issuer, const saml2::NameID* nameid, - const vector* tokens + const vector* tokens, + const multimap* attributes ) const { - AttributeResolver* resolver = application.getAttributeResolver(); - if (!resolver) { - m_log.info("no AttributeResolver available, skipping resolution"); - return NULL; - } - try { + AttributeResolver* resolver = application.getAttributeResolver(); + if (!resolver) { + m_log.info("no AttributeResolver available, skipping resolution"); + return NULL; + } + m_log.debug("resolving attributes..."); + + Locker locker(resolver); auto_ptr ctx( - resolver->createResolutionContext(application, httpRequest.getRemoteAddr().c_str(), issuer, nameid, tokens) + resolver->createResolutionContext(application, issuer, nameid, tokens, attributes) ); - resolver->resolveAttributes(*ctx.get(), application.getAttributeIds()); + resolver->resolveAttributes(*ctx.get()); return ctx.release(); } catch (exception& ex) {