That fixed one problem.

Now, for some reason, it's looking for

org.appfuse.model.User

and I'm handing up the DocumentumUserDetails...  I guess I'll change my
Authentication Provider to return an

org.appfuse.model.User




On 11/1/07, Matt Raible <[EMAIL PROTECTED]> wrote:
>
> There was a similar issue a couple of weeks ago - where the Acegi tag
> that calls getFullName() was causing a 0 byte response. You might want
> to override footer.jsp and change it to call getUsername() instead.
>
> Matt
>
> On 11/1/07, John Kwon <[EMAIL PROTECTED]> wrote:
> > I have written a customauthenticator for Acegi, and I've wired it in,
> and I
> > can tell (when acegi logging is set to debug) that I'm getting back the
> > desired results, and passing through the right filters, and getting
> approved
> > for the page BUT the destination page shows as a blank.
> >
> > Documentum requires a plaintext password, and you cannot look up user
> > details using just a username and no password, so I had to implement
> this as
> > follows:
> >
> >
> >
> > package com.csc.digitization.quality.security;
> > import java.util.ArrayList;
> > import java.util.List;
> >
> > import org.acegisecurity.AuthenticationException;
> > import org.acegisecurity.AuthenticationServiceException;
> > import org.acegisecurity.BadCredentialsException;
> > import org.acegisecurity.GrantedAuthority;
> > import org.acegisecurity.GrantedAuthorityImpl;
> > import
> > org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
> > import
> >
> org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider;
> > import org.acegisecurity.providers.dao.SaltSource ;
> > import
> > org.acegisecurity.providers.encoding.PasswordEncoder;
> > import
> > org.acegisecurity.providers.encoding.PlaintextPasswordEncoder;
> > import org.acegisecurity.userdetails.UserDetails;
> > import org.acegisecurity.userdetails.UserDetailsService ;
> > import org.springframework.dao.DataAccessException;
> > import org.springframework.util.Assert;
> >
> > import com.csc.digitization.quality.dctm.DCTMService;
> > import com.csc.digitization.quality.dctm.PropertyRetriever;
> > import com.documentum.fc.common.DfException;
> >
> > /**
> >  * An [EMAIL PROTECTED] AuthenticationProvider} implementation that 
> > retrieves user
> > details
> >  * from an [EMAIL PROTECTED] UserDetailsService}.
> >  *
> >  * @author John Kwon
> >  * @version $Id: DocumentumAuthenticationProvider.java 1857
> > 2007-05-24 00:47:12Z
> >  *          johkwo $
> >  */
> > public class DocumentumAuthenticationProvider extends
> > AbstractUserDetailsAuthenticationProvider {
> >
> >     //~ Instance fields
> >
> ================================================================================================
> >
> >     private PasswordEncoder passwordEncoder = new
> > PlaintextPasswordEncoder();
> >
> >
> >     private boolean includeDetailsObject = true;
> >
> >     //~ Methods
> >
> ========================================================================================================
> >
> >     protected void
> > additionalAuthenticationChecks(UserDetails userDetails,
> >             UsernamePasswordAuthenticationToken
> > authentication) throws AuthenticationException {
> >
> >         if (authentication.getCredentials () == null) {
> >             throw new BadCredentialsException("Bad Credentials");
> >         }
> >
> >         String presentedPassword = authentication.getCredentials() ==
> null ?
> > "" : authentication.getCredentials()
> >                 .toString();
> >
> >      }
> >
> >
> >     public PasswordEncoder getPasswordEncoder() {
> >         return passwordEncoder;
> >     }
> >
> >     protected final UserDetails retrieveUser(String username,
> > UsernamePasswordAuthenticationToken authentication)
> >             throws AuthenticationException {
> >         UserDetails loadedUser;
> >         String docbase = new
> > PropertyRetriever().getProperty("mail", "docbase");
> >         String password = authentication.getCredentials() == null ? "" :
> > authentication.getCredentials()
> >                 .toString();
> >         try {
> >          DCTMService dService = new DCTMService();
> >          dService.authenticate (username, password, docbase);
> >             loadedUser = new DocumentumUserDetails();
> >             ((DocumentumUserDetails)
> > loadedUser).setUsername(username);
> >             ((DocumentumUserDetails)
> > loadedUser).setPassword(password);
> >             GrantedAuthority[] authorities = loadedUser.getAuthorities
> ();
> >             ((DocumentumUserDetails) loadedUser).setEnabled(true);
> >         }
> >         catch (Exception repositoryProblem) {
> >             throw new AuthenticationServiceException(
> > repositoryProblem.getMessage(), repositoryProblem);
> >         }
> >
> >         return loadedUser;
> >     }
> >
> >     /**
> >      * Sets the PasswordEncoder instance to be used to encode and
> validate
> > passwords.
> >      * If not set, [EMAIL PROTECTED] PlaintextPasswordEncoder} will be used 
> > by
> default.
> >      *
> >       * @param passwordEncoder The passwordEncoder to use
> >      */
> >     public void setPasswordEncoder(PasswordEncoder
> > passwordEncoder) {
> >         this.passwordEncoder = passwordEncoder;
> >     }
> >
> >     public boolean isIncludeDetailsObject() {
> >         return includeDetailsObject;
> >     }
> >
> >     public void setIncludeDetailsObject(boolean includeDetailsObject) {
> >         this.includeDetailsObject = includeDetailsObject;
> >  }
> >
> > }
> >
> >
> > This appears to work, except that when I go from the logon screen to
> > /mainmenu.html, I see nothing on arrival.
> >
> >
> >
> > Here's the log:
> >
> >
> >
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(100)
> > | Converted URL to lowercase, from: '/mainmenu.html'; to:
> '/mainmenu.html'
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainmenu.html'; pattern is /images/**;
> matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainmenu.html'; pattern is /scripts/**; matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainmenu.html'; pattern is /styles/**; matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainmenu.html'; pattern is /**; matched=true
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 1 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1]
> > HttpSessionContextIntegrationFilter.doFilter(239) |
> > Obtained from ACEGI_SECURITY_CONTEXT a valid SecurityContext and set to
> > SecurityContextHolder:
> > '[EMAIL PROTECTED]:
> > Authentication:
> > [EMAIL PROTECTED]
> :
> > Username:
> > [EMAIL PROTECTED]
> > ; Password: [PROTECTED]; Authenticated: true; Details:
> > [EMAIL PROTECTED]:
> > RemoteIpAddress: 127.0.0.1; SessionId:
> > 5D99DCA27AA857F1FC89EE6E434B5884; Granted Authorities:
> > ROLE_USER'
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 2 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter (270) |
> > /mainMenu.html at position 3 of 7 in additional filter chain; firing
> Filter:
> > '
> [EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1]
> > SavedRequestAwareWrapper.<init>(107) | Wrapper not
> > replaced; SavedRequest was: null
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 4 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1]
> > RememberMeProcessingFilter.doFilter (138) |
> > SecurityContextHolder not populated with remember-me token, as it
> already
> > contained:
> > '
> [EMAIL PROTECTED]
> > : Username:
> > [EMAIL PROTECTED];
> > Password: [PROTECTED]; Authenticated: true; Details:
> > [EMAIL PROTECTED]:
> > RemoteIpAddress: 127.0.0.1; SessionId:
> > 5D99DCA27AA857F1FC89EE6E434B5884; Granted Authorities:
> > ROLE_USER'
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 5 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]
> '
> > [quality] DEBUG [http-8080-1]
> > AnonymousProcessingFilter.doFilter(118) |
> > SecurityContextHolder not populated with anonymous token, as it already
> > contained:
> > '
> [EMAIL PROTECTED]:
> > Username:
> > [EMAIL PROTECTED];
> > Password: [PROTECTED]; Authenticated: true; Details:
> > [EMAIL PROTECTED] :
> > RemoteIpAddress: 127.0.0.1; SessionId:
> > 5D99DCA27AA857F1FC89EE6E434B5884; Granted Authorities:
> > ROLE_USER'
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 6 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(270) |
> > /mainMenu.html at position 7 of 7 in additional filter chain; firing
> Filter:
> > '[EMAIL PROTECTED]'
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainMenu.html'; pattern is /pdf.html*;
> matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is
> > /**/*.pdf*=ROLE_ANONYMOUS,ROLE_ADMIN,ROLE_USER
> >   /activeUsers.*; matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is /clickstreams.jsp*;
> > matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainMenu.html'; pattern is /flushCache.*;
> > matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is /passwordHint.html*;
> > matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is /reload.*; matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainMenu.html'; pattern is /signup.html*;
> > matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is /a4j.res/*.html*;
> matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes(112)
> > | Candidate is: '/mainMenu.html'; pattern is /users.html*; matched=false
> > [quality] DEBUG [http-8080-1]
> > PathBasedFilterInvocationDefinitionMap.lookupAttributes
> > (112) | Candidate is: '/mainMenu.html'; pattern is /**/*.html*;
> matched=true
> > [quality] DEBUG [http-8080-1]
> > AbstractSecurityInterceptor.beforeInvocation(257) | Secure
> > object: FilterInvocation: URL: /mainMenu.html; ConfigAttributes:
> > [ROLE_ADMIN, ROLE_USER]
> > [quality] DEBUG [http-8080-1]
> > AbstractSecurityInterceptor.beforeInvocation(286) |
> > Previously Authenticated:
> > [EMAIL PROTECTED]
> > : Username:
> > [EMAIL PROTECTED];
> > Password: [PROTECTED]; Authenticated: true; Details:
> > [EMAIL PROTECTED]:
> > RemoteIpAddress: 127.0.0.1; SessionId:
> > 5D99DCA27AA857F1FC89EE6E434B5884; Granted Authorities:
> > ROLE_USER
> > [quality] DEBUG [http-8080-1]
> > AbstractSecurityInterceptor.beforeInvocation(302) |
> > Authorization successful
> > [quality] DEBUG [http-8080-1]
> > AbstractSecurityInterceptor.beforeInvocation(313) |
> > RunAsManager did not change Authentication object
> > [quality] DEBUG [http-8080-1] FilterChainProxy.doFilter(261) |
> > /mainMenu.html reached end of additional filter chain; proceeding with
> > original chain
> > [quality] DEBUG [http-8080-1]
> > ExceptionTranslationFilter.doFilter (113) | Chain processed
> > normally
> > [quality] DEBUG [http-8080-1]
> > HttpSessionContextIntegrationFilter.doFilter(364) |
> > SecurityContextHolder set to new context, as request processing
> completed
> >
>
>
> --
> http://raibledesigns.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to