View Javadoc

1   /*
2    * Copyright (C) 2007 Alf Mikula
3    * 
4    * This file is part of PromoteGo.
5    *
6    * PromoteGo is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * PromoteGo is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with PromoteGo.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.promotego.interceptors;
20  
21  import java.net.URLEncoder;
22  
23  import javax.servlet.http.HttpServletRequest;
24  import javax.servlet.http.HttpServletResponse;
25  
26  import org.promotego.beans.UserHolder;
27  import org.springframework.beans.factory.annotation.Required;
28  
29  /***
30   * @author alf
31   *
32   */
33  public class EnforceLoginInterceptor extends ExcludingInterceptorBase
34  {
35  	private UserHolder m_userHolder;
36  
37  	@Override
38  	public boolean excludingPreHandle(HttpServletRequest request,
39  			HttpServletResponse response, Object handler) throws Exception
40  	{
41  		if (m_userHolder.getUser() != null)
42  		{
43  			return true;
44  		}
45  		else
46  		{
47  			StringBuilder redirect = new StringBuilder(request.getRequestURI());
48  			if (request.getQueryString() != null)
49  			{
50  				redirect.append('?');
51  				redirect.append(request.getQueryString());
52  			}
53  			response.sendRedirect(request.getContextPath() + "/login.do?redirect=" + URLEncoder.encode(redirect.toString(), "UTF-8"));
54  			return false;
55  		}
56  	}
57  	
58  	@Required
59  	public void setUserHolder(UserHolder userHolder)
60  	{
61  		m_userHolder = userHolder;
62  	}
63  }