[11:04:02 CDT(-0500)] <b-cause> hello uPortal devs: we use the RequestAttributeSourceFilter from the person-directory to create some of the users attributes, we also have configured in the personDirectoryContext.xml the ldapPersonAttributes dao as part of the mergedPersonAttributes Dao. Do you know of a way to configure person directory so that the RequestAttributesFilter can have precedence of the the attributes collected elsewhere?
[11:05:54 CDT(-0500)] <EricDalquist> what do you mean precedence?
[11:06:06 CDT(-0500)] <EricDalquist> you want attributes from the request to replace those from ldap?
[11:06:26 CDT(-0500)] <b-cause> like I have attributes in RequestAttributeFilter that are the same as attr's colleceted from the ldapAttribute dao
[11:06:29 CDT(-0500)] <b-cause> yes
[11:06:38 CDT(-0500)] <b-cause> I want them to replace whats in ldap if posssible
[11:06:50 CDT(-0500)] <b-cause> I see they are stored in the session additionaldescriptors
[11:07:11 CDT(-0500)] <b-cause> but those don't seem to override whats coming out of Ldap for the same named attributes
[11:07:35 CDT(-0500)] <EricDalquist> the merging attribute dao has a "merger" property
[11:07:44 CDT(-0500)] <EricDalquist> the default one is MultivaluedAttributeMerger
[11:07:53 CDT(-0500)] <EricDalquist> which turns attribute conflicts into multivalued
[11:08:08 CDT(-0500)] <EricDalquist> you can change that do inject ReplacingAttributeAdder
[11:08:14 CDT(-0500)] <EricDalquist> so something like
[11:08:45 CDT(-0500)] <EricDalquist> <property name="merger"><bean class="org.jasig.services.persondir.support.merger.ReplacingAttributeAdder"/></property>
[11:09:03 CDT(-0500)] <b-cause> actually . looking at it. we have ReplacingAttributeAddr set
[11:09:11 CDT(-0500)] <EricDalquist> then it is order dependent
[11:09:18 CDT(-0500)] <b-cause> maybe we need to change it to MultivaluedAttributeMerger?
[11:09:24 CDT(-0500)] <EricDalquist> later DAOs in the personAttributeDaos list
[11:09:31 CDT(-0500)] <EricDalquist> replace attributes from earlier
[11:09:51 CDT(-0500)] <b-cause> ok I see that the requestAttributesDao is not in that list, should I add it?
[11:10:08 CDT(-0500)] <b-cause> right now theldapAttributeSource is last in the list.
[11:10:21 CDT(-0500)] <b-cause> with AccountUserSource and JdbcUserSource before it
[11:10:32 CDT(-0500)] <EricDalquist> so requestAttributesDao is never included anywhere?
[11:11:14 CDT(-0500)] <b-cause> it is included in the requestAttributeMergingDao
[11:11:28 CDT(-0500)] <EricDalquist> ok so you probably need to restructure things a bit
[11:11:44 CDT(-0500)] <EricDalquist> so that it is referenced in the same merging dao that contains the other attributes
[11:11:52 CDT(-0500)] <b-cause> I see that is part of the personAttributeDao which I guess is used in person attrs swapper.
[11:12:18 CDT(-0500)] <EricDalquist> gotta run to a meeting ... back in ~30
[11:12:25 CDT(-0500)] <b-cause> ok. thanks Eric