Odd Duo Exception after upgrading to 3.3.0 from 3.2.0

Christopher Bongaarts cab at umn.edu
Tue Mar 28 12:55:38 EDT 2017


On 3/27/2017 6:14 PM, Cantor, Scott wrote:
> In Unicon's case, they're using annotations to autowire these beans into the various lists and objects inside the IdP's Spring wiring:
>
> https://github.com/Unicon/shib-mfa-duo-auth/blob/master/src/main/groovy/net/unicon/iam/shibboleth/idp/authn/duo/global/Config.groovy
>
> While there's no specific reason that that should have stopped working (the bean names referenced are "public" and have not changed names or definitions), it's also unsupported because we have an official, if possibly not clearly documented, rule that annotations are unsupported.
>
> If it did break, which seems to be the case, it would be interesting to know why, but mostly as a "this is why they're not supported" exercise demonstrating the reason for avoiding them.

I believe it was an interaction between their autowiring, my munging of 
the search paths in web.xml, and my workarounds to get it loaded (i.e. 
deleting the webflow config class from the unicon .jar) that lead to our 
wacky results.  And I'm not *too* surprised, as the install instructions 
for the plugin already required fuzzing for 3.2.1.

This most recent one was extra confusing to me, as it seemed awfully 
late in the game for the IdP to not have an auth flow descriptor for the 
Duo flow, seeing as how it had recently finished running to authenticate 
me.... :/  So I figure it was that somehow the descriptor got wired in 
in one place, or the global Config class kinda-sorta wired it in, but it 
didn't end up in the AFD list that got injected into the StorageManager 
somehow (but I'm not sure how - the default storage manager bean def is 
just injecting a ref to the main shibboleth.AvailableAuthenticationFlows 
list bean).

I'm pretty sure that the Unicon plugin could be pretty easily massaged 
to be installable in 3.3.x, by figuring out which Config classes needed 
to be updated to avoid registering things twice, and shuffling the jar 
structure around to use the new layout.  I'd only see that as worth 
doing if there are a lot of people using it who haven't gone to 3.3 
already, though.

But yeah, I'm pretty sure it's just a packaging/plugin 
registration/configuration issue; I didn't need to touch the actual code 
or flows themselves - once the IdP can find them, they Just Work.

-- 
%%  Christopher A. Bongaarts   %%  cab at umn.edu          %%
%%  OIT - Identity Management  %%  http://umn.edu/~cab  %%
%%  University of Minnesota    %%  +1 (612) 625-1809    %%



More information about the users mailing list