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]