Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2009 eXo Platform SAS.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
   * the License, or (at your option) any later version.
   *
   * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 
 package org.exoplatform.web.login;
 
 
 
The remember me filter performs an authentication using the org.gatein.wci.ServletContainer when the current request is a GET request, the user is not authenticated and there is a remember me token cookie in the request.

Author(s):
Julien Viet
Version:
$Revision$
 
 public class RememberMeFilter extends AbstractFilter {
     //value of this field need equals with: org.gatein.security.oauth.common.OAuthConstants.ATTRIBUTE_AUTHENTICATED_PORTAL_USER_FOR_JAAS
     public static final String ATTRIBUTE_AUTHENTICATED_PORTAL_USER_FOR_JAAS = "_authenticatedPortalUserForJaas";
 
     public void doFilter(ServletRequest reqServletResponse respFilterChain chainthrows IOExceptionServletException {
         doFilter((HttpServletRequestreq, (HttpServletResponserespchain);
     }
 
     private void doFilter(HttpServletRequest reqHttpServletResponse respFilterChain chainthrows IOException,
             ServletException {
         if (req.getRemoteUser() == null) {
             String token = LoginServlet.getRememberMeTokenCookie(req);
             if (token != null) {
                 ExoContainer container = getContainer();
                 CookieTokenService tokenservice = container.getComponentInstanceOfType(CookieTokenService.class);
                 Credentials credentials = tokenservice.validateToken(tokenfalse);
                 if (credentials != null) {
                     ServletContainer servletContainer = ServletContainerFactory.getServletContainer();
                     try {
                         servletContainer.login(reqrespcredentials);
                     } catch (Exception e) {
                         // Could not authenticate
                     }
                 }
             }
 
             // Clear token cookie if we did not authenticate
             if (req.getRemoteUser() == null) {
                 Cookie cookie = new Cookie(."");
                 cookie.setPath(req.getContextPath());
                 cookie.setMaxAge(0);
                 resp.addCookie(cookie);
             }
         }
 
         //Process oauth rememberMe
         if(req.getRemoteUser() == null) {
             String token = LoginServlet.getOauthRememberMeTokenCookie(req);
             if(token != null) {
                 ExoContainer container = getContainer();
                 CookieTokenService tokenService = container.getComponentInstanceOfType(CookieTokenService.class);
                 Credentials credentials = tokenService.validateToken(tokenfalse);
                 AuthenticationRegistry authRegistry = container.getComponentInstanceOfType(AuthenticationRegistry.class);
                 OrganizationService orgService = container.getComponentInstanceOfType(OrganizationService.class);
 
                 if (credentials != null) {
                     ServletContainer servletContainer = ServletContainerFactory.getServletContainer();
                     try {
                         String username = credentials.getUsername();
 
                        User portalUser = orgService.getUserHandler().findUserByName(username.);
                        if(portalUser != null) {
                            authRegistry.setAttributeOfClient(reqportalUser);
                            servletContainer.login(reqrespcredentials);
                        }
                    } catch (Exception e) {
                        // Could not authenticate
                    }
                }
                // Clear token cookie if we did not authenticate
                if (req.getRemoteUser() == null) {
                    Cookie cookie = new Cookie(."");
                    cookie.setPath(req.getContextPath());
                    cookie.setMaxAge(0);
                    resp.addCookie(cookie);
                }
            }
        }
        // Continue
        chain.doFilter(reqresp);
    }
    public void destroy() {
    }
New to GrepCode? Check out our FAQ X