projects
/
shibboleth
/
sp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Copied over mapping and filtering schemas.
[shibboleth/sp.git]
/
shibsp
/
handler
/
impl
/
AssertionConsumerService.cpp
diff --git
a/shibsp/handler/impl/AssertionConsumerService.cpp
b/shibsp/handler/impl/AssertionConsumerService.cpp
index
75b38e8
..
06c5c64
100644
(file)
--- 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,
ResolutionContext* AssertionConsumerService::resolveAttributes(
const Application& application,
- const HTTPRequest& httpRequest,
const saml2md::EntityDescriptor* issuer,
const saml2::NameID* nameid,
const saml2md::EntityDescriptor* issuer,
const saml2::NameID* nameid,
- const vector<const Assertion*>* tokens
+ const vector<const Assertion*>* tokens,
+ const multimap<string,Attribute*>* attributes
) const
{
) const
{
- AttributeResolver* resolver = application.getAttributeResolver();
- if (!resolver) {
- m_log.info("no AttributeResolver available, skipping resolution");
- return NULL;
- }
-
try {
try {
+ AttributeResolver* resolver = application.getAttributeResolver();
+ if (!resolver) {
+ m_log.info("no AttributeResolver available, skipping resolution");
+ return NULL;
+ }
+
m_log.debug("resolving attributes...");
m_log.debug("resolving attributes...");
+
+ Locker locker(resolver);
auto_ptr<ResolutionContext> ctx(
auto_ptr<ResolutionContext> ctx(
- resolver->createResolutionContext(application,
httpRequest.getRemoteAddr().c_str(), issuer, nameid, token
s)
+ resolver->createResolutionContext(application,
issuer, nameid, tokens, attribute
s)
);
);
- resolver->resolveAttributes(*ctx.get()
, application.getAttributeIds()
);
+ resolver->resolveAttributes(*ctx.get());
return ctx.release();
}
catch (exception& ex) {
return ctx.release();
}
catch (exception& ex) {