Slight introduction to Java annotation based configuration (note that <mvc:annotation-driven /> has been added to libresonic-servlet.xml).master
							parent
							
								
									c9bdff4dff
								
							
						
					
					
						commit
						a03aa2805d
					
				| @ -0,0 +1,72 @@ | ||||
| package org.libresonic.player.controller; | ||||
| 
 | ||||
| import org.libresonic.player.Logger; | ||||
| import org.libresonic.player.domain.User; | ||||
| import org.libresonic.player.service.PlaylistService; | ||||
| import org.libresonic.player.service.SecurityService; | ||||
| import org.libresonic.player.service.SettingsService; | ||||
| import org.libresonic.player.util.StringUtil; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; | ||||
| import org.springframework.stereotype.Controller; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RequestMethod; | ||||
| import org.springframework.web.servlet.ModelAndView; | ||||
| import org.springframework.web.servlet.view.RedirectView; | ||||
| 
 | ||||
| import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| /** | ||||
|  * Spring MVC Controller that serves the login page. | ||||
|  */ | ||||
| @Controller | ||||
| @RequestMapping("/login") | ||||
| public class LoginController { | ||||
| 
 | ||||
| 
 | ||||
|     private static final Logger LOG = Logger.getLogger(LoginController.class); | ||||
| 
 | ||||
|     private final SecurityService securityService; | ||||
|     private final SettingsService settingsService; | ||||
|     private final PlaylistService playlistService; | ||||
| 
 | ||||
|     @Autowired | ||||
|     public LoginController(SecurityService securityService, SettingsService settingsService, PlaylistService playlistService) { | ||||
|         this.securityService = securityService; | ||||
|         this.settingsService = settingsService; | ||||
|         this.playlistService = playlistService; | ||||
|     } | ||||
| 
 | ||||
|     @RequestMapping(method = { RequestMethod.GET, RequestMethod.POST }) | ||||
|     public ModelAndView login(HttpServletRequest request, HttpServletResponse response) throws Exception { | ||||
| 
 | ||||
|         // Auto-login if "user" and "password" parameters are given.
 | ||||
|         String username = request.getParameter("user"); | ||||
|         String password = request.getParameter("password"); | ||||
|         if (username != null && password != null) { | ||||
|             username = StringUtil.urlEncode(username); | ||||
|             password = StringUtil.urlEncode(password); | ||||
|             return new ModelAndView(new RedirectView("/j_spring_security_check?"+ | ||||
|                     UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_USERNAME_KEY+"=" + username + | ||||
|                     "&"+UsernamePasswordAuthenticationFilter.SPRING_SECURITY_FORM_PASSWORD_KEY+"=" + password | ||||
|             )); | ||||
|         } | ||||
| 
 | ||||
|         Map<String, Object> map = new HashMap<String, Object>(); | ||||
|         map.put("logout", request.getParameter("logout") != null); | ||||
|         map.put("error", request.getParameter("error") != null); | ||||
|         map.put("brand", settingsService.getBrand()); | ||||
|         map.put("loginMessage", settingsService.getLoginMessage()); | ||||
| 
 | ||||
|         User admin = securityService.getUserByName(User.USERNAME_ADMIN); | ||||
|         if (User.USERNAME_ADMIN.equals(admin.getPassword())) { | ||||
|             map.put("insecure", true); | ||||
|         } | ||||
| 
 | ||||
|         return new ModelAndView("login", "model", map); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue