Allright, I solved it. 
The error was the order of the filters in the web.xml. It is _very_
important to let the acegi filter run _before_ the wicket filter. 
e.g.
    <!-- acegi checks every request -->
    <filter-mapping>
        <filter-name>Acegi HTTP Request Security Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
        <!-- each request goes through the wicket filter -->
    <filter-mapping>
      <filter-name>wicket.iPlayQuizClient</filter-name>
          <url-pattern>/*</url-pattern>
    </filter-mapping>


and _not_ vice versa. otherwise the wicket servlet looks for authorities
that haven't been set yet.
... always the easy and logical things waste my time ;-)




Michael Sparer wrote:
> 
> Hi, 
> 
> I get the same Nullpointer when calling
> SecurityContextHolder.getContext().getAuthentication().getAuthorities();
> (getAuthentication returns null) when I do a _refresh_ on the page which
> is displayed immediately after the login (and requires authorization),
> which seems weird to me ... any suggestions? 
> 
> thanks in advance
> 
> michael
> 
> 
> 
> Erik van Oosten (old) wrote:
>> 
>> Hi Ian,
>> 
>> Indeed, the Wicket base class from Wicket-auth-roles does keep the 'is 
>> signed in' state. This is okay; it is the intention that you invalidate 
>> the session upon logout. This should of course happen automatically on a 
>> timeout after you close the browser.
>>  
>> If the browser did not keep the cookie, you should have gotten a new 
>> session in which isSigned() should return false. If this is really the 
>> case, then this sounds like a bug in Wicket core and not in 
>> Wicket-auth-roles.
>> 
>> If your browser /did/ keep the cookie and brought you back to the same 
>> session, you should also have gotten the security context from Acegi.
>> It this is the case the problem is either (again) a Wicket bug, or a 
>> problem with the session authentication store of Acegi. Please 
>> investigate whether you configured the Acegi filter on all relevant URLs.
>> 
>> Regards,
>>      Erik.
>> 
>> 
>> Ian Godman wrote:
>>> Hi
>>>
>>> I am trying to get Acegi (Spring Security) working with Wicket.
>>>
>>> It almost works except that if I close the browser and reopen the page I
>>> get a null pointer exception because the
>>> SecurityContextHolder.getContext().getAuthentication() is null in the
>>> getRoles() method of the appSession, which is actually what I would
>>> expect as the use should not be logged on because the browser was
>>> closed.
>>>
>>> It appears to me that Wicket-auth-roles is not noticing that the user is
>>> not authenticated (its remembering the previous authentication) so
>>> checks to see if they have the role required to access the page and
>>> because the authentication does not exist in the security context I get
>>> NullPointerException.
>>>
>>> Been going around this all morning, completely out of ideas.
>>>
>>>
>>> Ian
>>>
>>>
>>>
>>>
>>>
>>>       ___________________________________________________________
>>> Yahoo! Answers - Got a question? Someone out there knows the answer. Try
>>> it
>>> now.
>>> http://uk.answers.yahoo.com/ 
>>>   
>> 
>> -- 
>> Erik van Oosten
>> http://2008.rubyenrails.nl/
>> http://www.day-to-day-stuff.blogspot.com/
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>> 
>> 
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Acegi-and-Wicket-auth-roles-tf4280003.html#a13388684
Sent from the Wicket - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to