Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Property or field 'duoAuthenticationService' cannot be found #15

Closed
jms18 opened this issue May 24, 2016 · 4 comments
Closed

Property or field 'duoAuthenticationService' cannot be found #15

jms18 opened this issue May 24, 2016 · 4 comments

Comments

@jms18
Copy link

jms18 commented May 24, 2016

Encountered this with IDP 3.2 and jetty 9.3 in conjunction with the shib-cas-authn3 plugin. Initially, I thought the problem might be with the Shibcas flow not properly passing off into sub-flow states; but the further I dug, the less likely that appeared. Traced the calling stack as best I could, and I began to think there might have been a problem with my classpath's, but the container was picking up everything but the method call.

I'm not sure if it is related to #12 or not. I'm going to keep stabbing at it and hope I can tease out more information. Attached is an abridged DEBUG trace of the idp and spring webflow (the full trace is too large to attach).
shibb-idp-3.2.1-mfa-duo-auth-error-summary.txt

@dhnukem
Copy link

dhnukem commented Jun 27, 2016

I ran into the same issue on tomcat 8. After much digging, I found that the annotations on the DuoAuthenticationService class were removed somewhere between 1.0.1 to 1.1.3:

-@Service('duoAuthenticationService')
 class DuoAuthenticationService {
-    @Value('%{duo.integrationKey}')
     private final String integrationKey

-    @Value('%{duo.secretKey}')
     private final String secretKey

-    @Value('%{duo.applicationKey}')
     private final String applicationKey

-    @Value('%{duo.apiHost}')
     private final String apiHost

I added the following bean to my global.xml file, and the error went away.

    <bean id="duoAuthenticationService" class="net.unicon.iam.shibboleth.idp.authn.duo.authn.DuoAuthenticationService"
        c:integrationKey="%{duo.integrationKey}"
        c:secretKey="%{duo.secretKey}"
        c:applicationKey="%{duo.applicationKey}"
        c:apiHost="%{duo.apiHost}"
        />

So, either the documentation should be updated, or maybe have this bean be incorporated into the default config in META-INF/shibboleth-idp/conf/global.xml?

@jms18
Copy link
Author

jms18 commented Jun 28, 2016

That worked. Wish I would have thought of that. Many thanks.

@scalding
Copy link
Contributor

Sorry for the late response on this. There's documentation out there on this somewhere, though, you're right that it should be here as well.

The reason for the removal of the annotations was to allow for easier configuration of multiple Duo services, for instance if you need to use Duo against two separate Duo integration configurations (say, one for students that might allow a pass through and another for employees that doesn't).

I do like the idea of defining the bean in the included global.xml file, which if you make the changes as noted to your web.xml, you should be able to easily override in one of the Shibboleth context files. I'll see what I can do about that soon.

scalding pushed a commit that referenced this issue Jun 29, 2016
add default `duoAuthenticationService` configuration
@scalding
Copy link
Contributor

This should be fixed in version 1.1.3. Thanks, and let me know if you run into any other problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants