1 24 package org.riotfamily.riot.security.ui; 25 26 import javax.servlet.http.HttpServletRequest ; 27 import javax.servlet.http.HttpServletResponse ; 28 29 import org.riotfamily.common.util.ResourceUtils; 30 import org.riotfamily.common.web.util.ServletUtils; 31 import org.riotfamily.riot.security.session.LoginManager; 32 import org.springframework.util.StringUtils; 33 import org.springframework.web.servlet.ModelAndView; 34 import org.springframework.web.servlet.mvc.Controller; 35 import org.springframework.web.servlet.view.RedirectView; 36 37 public class LoginFormController implements Controller { 38 39 private LoginManager loginManager; 40 41 private String viewName = ResourceUtils.getPath( 42 LoginFormController.class, "LoginFormView.ftl"); 43 44 private String successViewName; 45 46 47 public LoginFormController(LoginManager loginManager) { 48 this.loginManager = loginManager; 49 } 50 51 public void setViewName(String viewName) { 52 this.viewName = viewName; 53 } 54 55 public void setSuccessViewName(String successViewName) { 56 this.successViewName = successViewName; 57 } 58 59 public ModelAndView handleRequest(HttpServletRequest request, 60 HttpServletResponse response) throws Exception { 61 62 String username = request.getParameter("riot-username"); 63 String password = request.getParameter("riot-password"); 64 65 if (StringUtils.hasText(username)) { 66 if (loginManager.login(request, username, password)) { 67 if (successViewName != null) { 68 return new ModelAndView(successViewName); 69 } 70 else { 71 String successUrl = ServletUtils.getRootPath(request); 72 return new ModelAndView(new RedirectView(successUrl)); 73 } 74 } 75 } 76 77 if (username != null) { 78 return new ModelAndView(viewName, "username", username); 79 } 80 else { 81 return new ModelAndView(viewName); 82 } 83 } 84 85 } 86 | Popular Tags |