Hello,
        I had raised this issue before.
I am using sunrise authentication for our application. I had to change
the code in 2 files to make the application work properly. I will attach
the 2 files, please scrutinize it and apply these changes in CVS , if
deemed right....

I HAVE THE LATEST CODE FROM THE CVS...

The first change is in the Handler.java file.
        This is in reference to the redirect URI, when the URI starts
with the cocoon:// protocol 
/**
 * Chiths - ensured that the cocoon:// protocol starts from the context
 */
if ( this.redirectURI.startsWith("cocoon://") ) {
      this.redirectURI =
this.redirectURI.substring("cocoon://".length()).trim();
      this.redirectURI = request.getContextPath()+"/"+this.redirectURI;
} 
else if ( this.redirectURI.startsWith("cocoon:/") ) {
            this.redirectURI =
this.redirectURI.substring("cocoon:/".length()).trim();
 }

The second case is to avoid the null pointer exception thrown when the
logout is performed. This change is done in the
AuthenticatorManager.java.

This happens if you are only using authentication, no application
management etc. The following is my authentication action 

        <!-- Added By Chiths -->
<map:action name="accordia-auth"
src="org.apache.cocoon.webapps.authentication.acting.AuthAction">
        <handlers>        
           <handler name="foo-handler"
xmlns:map="http://apache.org/cocoon/sitemap/1.0";
xmlns:sunshine="http://sunshine.sundn.de/sunshine/1.0";>
                <redirect-to uri="cocoon://foo-loginpage"/>
                <authentication uri="cocoon:raw://foo-authuser"/>
        </handler>
                </handlers>
</map:action>

The changes done in the AuthenticationManager.java is 
/**
 * Commented by Chiths - Should notify cocoon-users, A Null exception is
thrown for
 * following line
 */
//
((SessionContextImpl)this.getSessionManager().getContext(AuthenticationC
onstants.SESSION_CONTEXT_NAME)).cleanParametersCache(logoutHandlerName);
        SessionContextImpl sessionContextImpl = (SessionContextImpl)
 
(this.getSessionManager().getContext(AuthenticationConstants.SESSION_CON
TEXT_NAME));
            if(sessionContextImpl != null) {
        
this.getLogger().debug("SunRise:logout() - sessionContextImpl is not
null");
        
sessionContextImpl.cleanParametersCache(logoutHandlerName);
                                                }
                                                else {
        
this.getLogger().debug("SunRise:logout() - sessionContextImpl is null");
                                                }

Please  investigate this and provide feedback...


Regds,
Chiths

Attachment: AuthenticationManager.java
Description: java/

Attachment: Handler.java
Description: java/

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

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

Reply via email to