Hi Ben,
I wasn't setting up my SecureContext manually.  That would explain the
error message I was getting...  I should have checked the example
JUnit tests before asking the question.  But thanks for the prompt
response, much appreciated.

Cheers,
Dan

On Sat, 24 Jul 2004 16:58:41 +1000, Ben Alex <[EMAIL PROTECTED]> wrote:
> Daniel Washusen wrote:
> 
> >Yeah, after stuffing around a little more I realised it's something to
> >do with the authentication call I'm making.
> >
> >I get the error in my JUnit test but not when I deploy the app.  I'm
> >trying to authenticate using:
> >ProviderManager providerManager = (ProviderManager)
> >applicationContext.getBean("authenticationManager");
> >providerManager.authenticate(new TestingAuthenticationToken("dan",
> >"blahblah", new GrantedAuthority[] { new
> >GrantedAuthorityImpl("ROLE_BLOGGER") } ));
> >
> >Using the TestingAuthenticationProvider and the deployed version uses
> >a DaoAuthenticationProvider.
> >
> >
> >
> Hi Dan
> 
> Just to clarify, you're saying your deployed version uses
> DaoAuthenticationProvider and works successfully in all ways. Your unit
> test on the other hand uses TestingAuthenticationToken and does not
> work. Is that correct?
> 
> Your unit test extract above should work. The
> providerManager.authenticate(Authentication) method should return a
> valid Authentication object, assuming the providerManager being obtained
> from the applicationContext is wired with the
> TestingAuthenticationProvider (which automatically accepts as valid any
> presented TestingAuthenticationToken).
> 
> If some other unit test code (which wasn't in your post) causes the
> calling of the MethodSecurityInterceptor, you need to ensure the
> ContextHolder is setup. In a unit test you need to setup the
> ContextHolder yourself. Two methods like this (from BankTests in the
> Acegi Security source) should do the trick, when called before and after
> your actual code to be tested:
> 
>     private static void createSecureContext() {
>         TestingAuthenticationToken auth = new
> TestingAuthenticationToken("test",
>                 "test",
>                 new GrantedAuthority[] {new
> GrantedAuthorityImpl("ROLE_TELLER"), new GrantedAuthorityImpl(
>                         "ROLE_PERMISSION_LIST")});
> 
>         SecureContextImpl secureContext = new SecureContextImpl();
>         secureContext.setAuthentication(auth);
>         ContextHolder.setContext(secureContext);
>     }
> 
>     private static void destroySecureContext() {
>         ContextHolder.setContext(null);
>     }
> 
> Now if I've misunderstood and your problem is actually to do with the
> web container deployed version of your application, in most cases the "A
> valid SecureContext was not provided in the RequestContext" indicates
> the net.sf.acegisecurity.ui package isn't being called or not being
> called at the appropriate time. Most of the time people use the
> AutoIntegrationFilter. Just double-check it is in your web.xml, as it is
> what is responsible for setting up the ContextHolder in a web container
> deployed application (equivalent to the createSecureContext() unit test
> code above).
> 
> If none of the above helps, would you mind elaborating on what your
> problem is with (unit test or deployed version) and provide a copy of
> your application context and web.xml?
> 
> HTH
> Ben
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by BEA Weblogic Workshop
> FREE Java Enterprise J2EE developer tools!
> Get your free copy of BEA WebLogic Workshop 8.1 today.
> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
> _______________________________________________
> Acegisecurity-developer mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer
> 
>


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Acegisecurity-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer

Reply via email to