Move to Spring4 + remove PasswordSettingsController + remove PremiumSettingsController

master
Rémi Cocula 8 years ago
parent d78244aa36
commit ddd8498040
  1. 75
      libresonic-main/src/main/java/org/libresonic/player/command/PasswordSettingsCommand.java
  2. 107
      libresonic-main/src/main/java/org/libresonic/player/command/PremiumSettingsCommand.java
  3. 12
      libresonic-main/src/main/java/org/libresonic/player/controller/GeneralSettingsController.java
  4. 6
      libresonic-main/src/main/java/org/libresonic/player/controller/MusicFolderSettingsController.java
  5. 15
      libresonic-main/src/main/java/org/libresonic/player/controller/NetworkSettingsController.java
  6. 60
      libresonic-main/src/main/java/org/libresonic/player/controller/PasswordSettingsController.java
  7. 21
      libresonic-main/src/main/java/org/libresonic/player/controller/PersonalSettingsController.java
  8. 23
      libresonic-main/src/main/java/org/libresonic/player/controller/PlayerSettingsController.java
  9. 9
      libresonic-main/src/main/java/org/libresonic/player/controller/PodcastSettingsController.java
  10. 80
      libresonic-main/src/main/java/org/libresonic/player/controller/PremiumSettingsController.java
  11. 27
      libresonic-main/src/main/java/org/libresonic/player/controller/SearchController.java
  12. 6
      libresonic-main/src/main/java/org/libresonic/player/controller/UserSettingsController.java
  13. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/RatingDao.java
  14. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/Schema.java
  15. 4
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema26.java
  16. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema27.java
  17. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema28.java
  18. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema29.java
  19. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema30.java
  20. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema31.java
  21. 4
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema32.java
  22. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema33.java
  23. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema34.java
  24. 6
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema35.java
  25. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema36.java
  26. 6
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema37.java
  27. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema38.java
  28. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema40.java
  29. 4
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema43.java
  30. 4
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema45.java
  31. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema46.java
  32. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema47.java
  33. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema49.java
  34. 4
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema50.java
  35. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema51.java
  36. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema52.java
  37. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema53.java
  38. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema61.java
  39. 2
      libresonic-main/src/main/java/org/libresonic/player/dao/schema/hsql/Schema62.java
  40. 46
      libresonic-main/src/main/java/org/libresonic/player/validator/PasswordSettingsValidator.java
  41. 53
      libresonic-main/src/main/java/org/libresonic/player/validator/PremiumSettingsValidator.java
  42. 4
      libresonic-main/src/main/webapp/WEB-INF/applicationContext-security.xml
  43. 22
      libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
  44. 2
      libresonic-main/src/test/java/org/libresonic/player/TestCaseUtils.java
  45. 5
      pom.xml

@ -1,75 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.command;
import org.libresonic.player.controller.*;
/**
* Command used in {@link PasswordSettingsController}.
*
* @author Sindre Mehus
*/
public class PasswordSettingsCommand {
private String username;
private String password;
private String confirmPassword;
private boolean ldapAuthenticated;
private boolean toast;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getConfirmPassword() {
return confirmPassword;
}
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
public boolean isLdapAuthenticated() {
return ldapAuthenticated;
}
public void setLdapAuthenticated(boolean ldapAuthenticated) {
this.ldapAuthenticated = ldapAuthenticated;
}
public boolean isToast() {
return toast;
}
public void setToast(boolean toast) {
this.toast = toast;
}
}

@ -1,107 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.command;
import org.apache.commons.lang.StringUtils;
import org.libresonic.player.controller.PremiumSettingsController;
import org.libresonic.player.domain.LicenseInfo;
import org.libresonic.player.domain.User;
/**
* Command used in {@link PremiumSettingsController}.
*
* @author Sindre Mehus
*/
public class PremiumSettingsCommand {
private String path;
private String brand;
private LicenseInfo licenseInfo;
private String licenseCode;
private boolean forceChange;
private boolean submissionError;
private User user;
private boolean toast;
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public LicenseInfo getLicenseInfo() {
return licenseInfo;
}
public String getLicenseCode() {
return licenseCode;
}
public void setLicenseCode(String licenseCode) {
this.licenseCode = StringUtils.trimToNull(licenseCode);
}
public void setLicenseInfo(LicenseInfo licenseInfo) {
this.licenseInfo = licenseInfo;
}
public boolean isForceChange() {
return forceChange;
}
public void setForceChange(boolean forceChange) {
this.forceChange = forceChange;
}
public boolean isSubmissionError() {
return submissionError;
}
public void setSubmissionError(boolean submissionError) {
this.submissionError = submissionError;
}
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
public void setToast(boolean toast) {
this.toast = toast;
}
public boolean isToast() {
return toast;
}
}

@ -19,21 +19,17 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import java.util.Locale; import org.libresonic.player.command.GeneralSettingsCommand;
import org.libresonic.player.domain.Theme;
import javax.servlet.http.HttpServletRequest; import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.GeneralSettingsCommand; import java.util.Locale;
import org.libresonic.player.domain.Theme;
import org.libresonic.player.service.SettingsService;
/** /**
* Controller for the page used to administrate general settings. * Controller for the page used to administrate general settings.

@ -20,14 +20,12 @@
package org.libresonic.player.controller; package org.libresonic.player.controller;
import org.libresonic.player.command.MusicFolderSettingsCommand; import org.libresonic.player.command.MusicFolderSettingsCommand;
import org.libresonic.player.command.NetworkSettingsCommand;
import org.libresonic.player.dao.AlbumDao; import org.libresonic.player.dao.AlbumDao;
import org.libresonic.player.dao.ArtistDao; import org.libresonic.player.dao.ArtistDao;
import org.libresonic.player.dao.MediaFileDao; import org.libresonic.player.dao.MediaFileDao;
import org.libresonic.player.domain.MusicFolder; import org.libresonic.player.domain.MusicFolder;
import org.libresonic.player.service.MediaScannerService; import org.libresonic.player.service.MediaScannerService;
import org.libresonic.player.service.SettingsService; import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
@ -35,11 +33,7 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.springframework.web.servlet.view.RedirectView;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

@ -19,24 +19,19 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.tools.ant.taskdefs.ManifestTask; import org.libresonic.player.command.NetworkSettingsCommand;
import org.libresonic.player.domain.UrlRedirectType;
import org.libresonic.player.service.NetworkService;
import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.NetworkSettingsCommand; import java.util.Random;
import org.libresonic.player.domain.UrlRedirectType;
import org.libresonic.player.service.NetworkService;
import org.libresonic.player.service.SettingsService;
/** /**
* Controller for the page used to change the network settings. * Controller for the page used to change the network settings.

@ -1,60 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.controller;
import org.springframework.web.servlet.mvc.*;
import org.libresonic.player.service.*;
import org.libresonic.player.command.*;
import org.libresonic.player.domain.*;
import javax.servlet.http.*;
/**
* Controller for the page used to change password.
*
* @author Sindre Mehus
*/
public class PasswordSettingsController extends SimpleFormController {
private SecurityService securityService;
protected Object formBackingObject(HttpServletRequest request) throws Exception {
PasswordSettingsCommand command = new PasswordSettingsCommand();
User user = securityService.getCurrentUser(request);
command.setUsername(user.getUsername());
command.setLdapAuthenticated(user.isLdapAuthenticated());
return command;
}
protected void doSubmitAction(Object comm) throws Exception {
PasswordSettingsCommand command = (PasswordSettingsCommand) comm;
User user = securityService.getUserByName(command.getUsername());
user.setPassword(command.getPassword());
securityService.updateUser(user);
command.setPassword(null);
command.setConfirmPassword(null);
command.setToast(true);
}
public void setSecurityService(SecurityService securityService) {
this.securityService = securityService;
}
}

@ -19,28 +19,21 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import java.util.Date;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.PersonalSettingsCommand;
import org.libresonic.player.domain.*;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.PersonalSettingsCommand; import javax.servlet.http.HttpServletRequest;
import org.libresonic.player.domain.AlbumListType; import java.util.Date;
import org.libresonic.player.domain.AvatarScheme; import java.util.Locale;
import org.libresonic.player.domain.Theme;
import org.libresonic.player.domain.User;
import org.libresonic.player.domain.UserSettings;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
/** /**
* Controller for the page used to administrate per-user settings. * Controller for the page used to administrate per-user settings.

@ -19,29 +19,22 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.PlayerSettingsCommand;
import org.libresonic.player.domain.*;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.TranscodingService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.PlayerSettingsCommand; import javax.servlet.http.HttpServletRequest;
import org.libresonic.player.domain.Player; import java.util.ArrayList;
import org.libresonic.player.domain.PlayerTechnology; import java.util.List;
import org.libresonic.player.domain.TranscodeScheme;
import org.libresonic.player.domain.Transcoding;
import org.libresonic.player.domain.User;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.TranscodingService;
/** /**
* Controller for the player settings page. * Controller for the player settings page.

@ -19,18 +19,15 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import org.libresonic.player.command.PodcastSettingsCommand;
import org.libresonic.player.service.PodcastService;
import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.service.SettingsService;
import org.libresonic.player.service.PodcastService;
import org.libresonic.player.command.PodcastSettingsCommand;
import javax.servlet.http.HttpServletRequest;
/** /**
* Controller for the page used to administrate the Podcast receiver. * Controller for the page used to administrate the Podcast receiver.

@ -1,80 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.controller;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.PremiumSettingsCommand;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
/**
* Controller for the Subsonic Premium page.
*
* @author Sindre Mehus
*/
public class PremiumSettingsController extends SimpleFormController {
private SettingsService settingsService;
private SecurityService securityService;
protected Object formBackingObject(HttpServletRequest request) throws Exception {
PremiumSettingsCommand command = new PremiumSettingsCommand();
command.setPath(request.getParameter("path"));
command.setForceChange(request.getParameter("change") != null);
command.setLicenseInfo(settingsService.getLicenseInfo());
command.setBrand(settingsService.getBrand());
command.setUser(securityService.getCurrentUser(request));
return command;
}
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object com, BindException errors)
throws Exception {
PremiumSettingsCommand command = (PremiumSettingsCommand) com;
Date now = new Date();
settingsService.setLicenseCode(command.getLicenseCode());
settingsService.setLicenseEmail(command.getLicenseInfo().getLicenseEmail());
settingsService.setLicenseDate(now);
settingsService.save();
settingsService.scheduleLicenseValidation();
// Reflect changes in view. The validator will validate the license asynchronously.
command.setLicenseInfo(settingsService.getLicenseInfo());
command.setToast(true);
return new ModelAndView(getSuccessView(), errors.getModel());
}
public void setSettingsService(SettingsService settingsService) {
this.settingsService = settingsService;
}
public void setSecurityService(SecurityService securityService) {
this.securityService = securityService;
}
}

@ -19,32 +19,23 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.SearchCommand;
import org.libresonic.player.domain.*;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SearchService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.BindException;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import org.libresonic.player.command.SearchCommand; import javax.servlet.http.HttpServletRequest;
import org.libresonic.player.domain.MusicFolder; import javax.servlet.http.HttpServletResponse;
import org.libresonic.player.domain.SearchCriteria; import java.util.List;
import org.libresonic.player.domain.SearchResult;
import org.libresonic.player.domain.User;
import org.libresonic.player.domain.UserSettings;
import org.libresonic.player.service.PlayerService;
import org.libresonic.player.service.SearchService;
import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService;
/** /**
* Controller for the search page. * Controller for the search page.

@ -19,6 +19,7 @@
*/ */
package org.libresonic.player.controller; package org.libresonic.player.controller;
import org.apache.commons.lang.StringUtils;
import org.libresonic.player.command.UserSettingsCommand; import org.libresonic.player.command.UserSettingsCommand;
import org.libresonic.player.domain.MusicFolder; import org.libresonic.player.domain.MusicFolder;
import org.libresonic.player.domain.TranscodeScheme; import org.libresonic.player.domain.TranscodeScheme;
@ -28,22 +29,17 @@ import org.libresonic.player.service.SecurityService;
import org.libresonic.player.service.SettingsService; import org.libresonic.player.service.SettingsService;
import org.libresonic.player.service.TranscodingService; import org.libresonic.player.service.TranscodingService;
import org.libresonic.player.util.Util; import org.libresonic.player.util.Util;
import org.apache.commons.lang.StringUtils;
import org.libresonic.player.validator.UserSettingsValidator; import org.libresonic.player.validator.UserSettingsValidator;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.ServletRequestBindingException; import org.springframework.web.bind.ServletRequestBindingException;
import org.springframework.web.bind.ServletRequestUtils; import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.SimpleFormController;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;

@ -107,7 +107,7 @@ public class RatingDao extends AbstractDao {
*/ */
public Integer getRatingForUser(String username, MediaFile mediaFile) { public Integer getRatingForUser(String username, MediaFile mediaFile) {
try { try {
return getJdbcTemplate().queryForInt("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()}); return getJdbcTemplate().queryForObject("select rating from user_rating where username=? and path=?", new Object[]{username, mediaFile.getPath()},Integer.class);
} catch (EmptyResultDataAccessException x) { } catch (EmptyResultDataAccessException x) {
return null; return null;
} }

@ -68,7 +68,7 @@ public abstract class Schema {
protected boolean rowExists(JdbcTemplate template, String whereClause, String table) { protected boolean rowExists(JdbcTemplate template, String whereClause, String table) {
try { try {
int rowCount = template.queryForInt("select count(*) from " + table + " where " + whereClause); int rowCount = template.queryForObject("select count(*) from " + table + " where " + whereClause,Integer.class);
return rowCount > 0; return rowCount > 0;
} catch (Exception x) { } catch (Exception x) {
return false; return false;

@ -35,7 +35,7 @@ public class Schema26 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 2") == 0) { if (template.queryForObject("select count(*) from version where version = 2",Integer.class) == 0) {
LOG.info("Updating database schema to version 2."); LOG.info("Updating database schema to version 2.");
template.execute("insert into version values (2)"); template.execute("insert into version values (2)");
} }
@ -99,7 +99,7 @@ public class Schema26 extends Schema {
LOG.info("Database column 'player.dynamic_ip' was added successfully."); LOG.info("Database column 'player.dynamic_ip' was added successfully.");
} }
if (template.queryForInt("select count(*) from role where id = 6") == 0) { if (template.queryForObject("select count(*) from role where id = 6",Integer.class) == 0) {
LOG.info("Role 'comment' not found in database. Creating it."); LOG.info("Role 'comment' not found in database. Creating it.");
template.execute("insert into role values (6, 'comment')"); template.execute("insert into role values (6, 'comment')");
template.execute("insert into user_role " + template.execute("insert into user_role " +

@ -35,7 +35,7 @@ public class Schema27 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 3") == 0) { if (template.queryForObject("select count(*) from version where version = 3",Integer.class) == 0) {
LOG.info("Updating database schema to version 3."); LOG.info("Updating database schema to version 3.");
template.execute("insert into version values (3)"); template.execute("insert into version values (3)");

@ -35,7 +35,7 @@ public class Schema28 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 4") == 0) { if (template.queryForObject("select count(*) from version where version = 4",Integer.class) == 0) {
LOG.info("Updating database schema to version 4."); LOG.info("Updating database schema to version 4.");
template.execute("insert into version values (4)"); template.execute("insert into version values (4)");
} }

@ -35,7 +35,7 @@ public class Schema29 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 5") == 0) { if (template.queryForObject("select count(*) from version where version = 5",Integer.class) == 0) {
LOG.info("Updating database schema to version 5."); LOG.info("Updating database schema to version 5.");
template.execute("insert into version values (5)"); template.execute("insert into version values (5)");
} }

@ -35,7 +35,7 @@ public class Schema30 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 6") == 0) { if (template.queryForObject("select count(*) from version where version = 6", Integer.class) == 0) {
LOG.info("Updating database schema to version 6."); LOG.info("Updating database schema to version 6.");
template.execute("insert into version values (6)"); template.execute("insert into version values (6)");
} }

@ -35,7 +35,7 @@ public class Schema31 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 7") == 0) { if (template.queryForObject("select count(*) from version where version = 7",Integer.class) == 0) {
LOG.info("Updating database schema to version 7."); LOG.info("Updating database schema to version 7.");
template.execute("insert into version values (7)"); template.execute("insert into version values (7)");
} }

@ -35,7 +35,7 @@ public class Schema32 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 8") == 0) { if (template.queryForObject("select count(*) from version where version = 8",Integer.class) == 0) {
LOG.info("Updating database schema to version 8."); LOG.info("Updating database schema to version 8.");
template.execute("insert into version values (8)"); template.execute("insert into version values (8)");
} }
@ -83,7 +83,7 @@ public class Schema32 extends Schema {
LOG.info("Database table 'podcast_episode' was created successfully."); LOG.info("Database table 'podcast_episode' was created successfully.");
} }
if (template.queryForInt("select count(*) from role where id = 7") == 0) { if (template.queryForObject("select count(*) from role where id = 7",Integer.class) == 0) {
LOG.info("Role 'podcast' not found in database. Creating it."); LOG.info("Role 'podcast' not found in database. Creating it.");
template.execute("insert into role values (7, 'podcast')"); template.execute("insert into role values (7, 'podcast')");
template.execute("insert into user_role " + template.execute("insert into user_role " +

@ -36,7 +36,7 @@ public class Schema33 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 9") == 0) { if (template.queryForObject("select count(*) from version where version = 9",Integer.class) == 0) {
LOG.info("Updating database schema to version 9."); LOG.info("Updating database schema to version 9.");
template.execute("insert into version values (9)"); template.execute("insert into version values (9)");
} }

@ -36,7 +36,7 @@ public class Schema34 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 10") == 0) { if (template.queryForObject("select count(*) from version where version = 10",Integer.class) == 0) {
LOG.info("Updating database schema to version 10."); LOG.info("Updating database schema to version 10.");
template.execute("insert into version values (10)"); template.execute("insert into version values (10)");
} }

@ -58,7 +58,7 @@ public class Schema35 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 11") == 0) { if (template.queryForObject("select count(*) from version where version = 11",Integer.class) == 0) {
LOG.info("Updating database schema to version 11."); LOG.info("Updating database schema to version 11.");
template.execute("insert into version values (11)"); template.execute("insert into version values (11)");
} }
@ -75,7 +75,7 @@ public class Schema35 extends Schema {
LOG.info("Database column 'user_settings.web_player_default' was added successfully."); LOG.info("Database column 'user_settings.web_player_default' was added successfully.");
} }
if (template.queryForInt("select count(*) from role where id = 8") == 0) { if (template.queryForObject("select count(*) from role where id = 8",Integer.class) == 0) {
LOG.info("Role 'stream' not found in database. Creating it."); LOG.info("Role 'stream' not found in database. Creating it.");
template.execute("insert into role values (8, 'stream')"); template.execute("insert into role values (8, 'stream')");
template.execute("insert into user_role select distinct u.username, 8 from user u"); template.execute("insert into user_role select distinct u.username, 8 from user u");
@ -135,7 +135,7 @@ public class Schema35 extends Schema {
} }
private void createAvatar(JdbcTemplate template, String avatar) { private void createAvatar(JdbcTemplate template, String avatar) {
if (template.queryForInt("select count(*) from system_avatar where name = ?", new Object[]{avatar}) == 0) { if (template.queryForObject("select count(*) from system_avatar where name = ?", new Object[]{avatar},Integer.class) == 0) {
InputStream in = null; InputStream in = null;
try { try {

@ -37,7 +37,7 @@ public class Schema36 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 12") == 0) { if (template.queryForObject("select count(*) from version where version = 12",Integer.class) == 0) {
LOG.info("Updating database schema to version 12."); LOG.info("Updating database schema to version 12.");
template.execute("insert into version values (12)"); template.execute("insert into version values (12)");
} }

@ -37,19 +37,19 @@ public class Schema37 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 13") == 0) { if (template.queryForObject("select count(*) from version where version = 13",Integer.class) == 0) {
LOG.info("Updating database schema to version 13."); LOG.info("Updating database schema to version 13.");
template.execute("insert into version values (13)"); template.execute("insert into version values (13)");
} }
if (template.queryForInt("select count(*) from role where id = 9") == 0) { if (template.queryForObject("select count(*) from role where id = 9",Integer.class) == 0) {
LOG.info("Role 'settings' not found in database. Creating it."); LOG.info("Role 'settings' not found in database. Creating it.");
template.execute("insert into role values (9, 'settings')"); template.execute("insert into role values (9, 'settings')");
template.execute("insert into user_role select distinct u.username, 9 from user u"); template.execute("insert into user_role select distinct u.username, 9 from user u");
LOG.info("Role 'settings' was created successfully."); LOG.info("Role 'settings' was created successfully.");
} }
if (template.queryForInt("select count(*) from role where id = 10") == 0) { if (template.queryForObject("select count(*) from role where id = 10",Integer.class) == 0) {
LOG.info("Role 'jukebox' not found in database. Creating it."); LOG.info("Role 'jukebox' not found in database. Creating it.");
template.execute("insert into role values (10, 'jukebox')"); template.execute("insert into role values (10, 'jukebox')");
template.execute("insert into user_role " + template.execute("insert into user_role " +

@ -37,7 +37,7 @@ public class Schema38 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 14") == 0) { if (template.queryForObject("select count(*) from version where version = 14",Integer.class) == 0) {
LOG.info("Updating database schema to version 14."); LOG.info("Updating database schema to version 14.");
template.execute("insert into version values (14)"); template.execute("insert into version values (14)");
} }

@ -37,7 +37,7 @@ public class Schema40 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 15") == 0) { if (template.queryForObject("select count(*) from version where version = 15",Integer.class) == 0) {
LOG.info("Updating database schema to version 15."); LOG.info("Updating database schema to version 15.");
template.execute("insert into version values (15)"); template.execute("insert into version values (15)");

@ -40,12 +40,12 @@ public class Schema43 extends Schema {
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
// version 16 was used for 4.3.beta1 // version 16 was used for 4.3.beta1
if (template.queryForInt("select count(*) from version where version = 16") == 0) { if (template.queryForObject("select count(*) from version where version = 16",Integer.class) == 0) {
LOG.info("Updating database schema to version 16."); LOG.info("Updating database schema to version 16.");
template.execute("insert into version values (16)"); template.execute("insert into version values (16)");
} }
if (template.queryForInt("select count(*) from version where version = 17") == 0) { if (template.queryForObject("select count(*) from version where version = 17",Integer.class) == 0) {
LOG.info("Updating database schema to version 17."); LOG.info("Updating database schema to version 17.");
template.execute("insert into version values (17)"); template.execute("insert into version values (17)");

@ -37,12 +37,12 @@ public class Schema45 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 18") == 0) { if (template.queryForObject("select count(*) from version where version = 18",Integer.class) == 0) {
LOG.info("Updating database schema to version 18."); LOG.info("Updating database schema to version 18.");
template.execute("insert into version values (18)"); template.execute("insert into version values (18)");
} }
if (template.queryForInt("select count(*) from role where id = 11") == 0) { if (template.queryForObject("select count(*) from role where id = 11",Integer.class) == 0) {
LOG.info("Role 'share' not found in database. Creating it."); LOG.info("Role 'share' not found in database. Creating it.");
template.execute("insert into role values (11, 'share')"); template.execute("insert into role values (11, 'share')");
template.execute("insert into user_role " + template.execute("insert into user_role " +

@ -37,7 +37,7 @@ public class Schema46 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 19") == 0) { if (template.queryForObject("select count(*) from version where version = 19",Integer.class) == 0) {
LOG.info("Updating database schema to version 19."); LOG.info("Updating database schema to version 19.");
template.execute("insert into version values (19)"); template.execute("insert into version values (19)");
} }

@ -37,7 +37,7 @@ public class Schema47 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 20") == 0) { if (template.queryForObject("select count(*) from version where version = 20",Integer.class) == 0) {
LOG.info("Updating database schema to version 20."); LOG.info("Updating database schema to version 20.");
template.execute("insert into version values (20)"); template.execute("insert into version values (20)");
} }

@ -37,7 +37,7 @@ public class Schema49 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 21") == 0) { if (template.queryForObject("select count(*) from version where version = 21",Integer.class) == 0) {
LOG.info("Updating database schema to version 21."); LOG.info("Updating database schema to version 21.");
template.execute("insert into version values (21)"); template.execute("insert into version values (21)");
} }

@ -37,7 +37,7 @@ public class Schema50 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 22") == 0) { if (template.queryForObject("select count(*) from version where version = 22",Integer.class) == 0) {
LOG.info("Updating database schema to version 22."); LOG.info("Updating database schema to version 22.");
template.execute("insert into version values (22)"); template.execute("insert into version values (22)");
@ -57,7 +57,7 @@ public class Schema50 extends Schema {
} }
// Added in 5.0.beta2 // Added in 5.0.beta2
if (template.queryForInt("select count(*) from version where version = 23") == 0) { if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) {
LOG.info("Updating database schema to version 23."); LOG.info("Updating database schema to version 23.");
template.execute("insert into version values (23)"); template.execute("insert into version values (23)");
template.execute("update transcoding2 set step1='ffmpeg -i %s -map 0:0 -b:a %bk -v 0 -f mp3 -' where name='mp3 audio'"); template.execute("update transcoding2 set step1='ffmpeg -i %s -map 0:0 -b:a %bk -v 0 -f mp3 -' where name='mp3 audio'");

@ -36,7 +36,7 @@ public class Schema51 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 23") == 0) { if (template.queryForObject("select count(*) from version where version = 23",Integer.class) == 0) {
LOG.info("Updating database schema to version 23."); LOG.info("Updating database schema to version 23.");
template.execute("insert into version values (23)"); template.execute("insert into version values (23)");
} }

@ -36,7 +36,7 @@ public class Schema52 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 24") == 0) { if (template.queryForObject("select count(*) from version where version = 24",Integer.class) == 0) {
LOG.info("Updating database schema to version 24."); LOG.info("Updating database schema to version 24.");
template.execute("insert into version values (24)"); template.execute("insert into version values (24)");
} }

@ -38,7 +38,7 @@ public class Schema53 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 25") == 0) { if (template.queryForObject("select count(*) from version where version = 25",Integer.class) == 0) {
LOG.info("Updating database schema to version 25."); LOG.info("Updating database schema to version 25.");
template.execute("insert into version values (25)"); template.execute("insert into version values (25)");
} }

@ -34,7 +34,7 @@ public class Schema61 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 26") == 0) { if (template.queryForObject("select count(*) from version where version = 26",Integer.class) == 0) {
LOG.info("Updating database schema to version 26."); LOG.info("Updating database schema to version 26.");
template.execute("insert into version values (26)"); template.execute("insert into version values (26)");
} }

@ -34,7 +34,7 @@ public class Schema62 extends Schema {
@Override @Override
public void execute(JdbcTemplate template) { public void execute(JdbcTemplate template) {
if (template.queryForInt("select count(*) from version where version = 27") == 0) { if (template.queryForObject("select count(*) from version where version = 27",Integer.class) == 0) {
LOG.info("Updating database schema to version 27."); LOG.info("Updating database schema to version 27.");
template.execute("insert into version values (27)"); template.execute("insert into version values (27)");
} }

@ -1,46 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.validator;
import org.springframework.validation.*;
import org.libresonic.player.command.*;
import org.libresonic.player.controller.*;
/**
* Validator for {@link PasswordSettingsController}.
*
* @author Sindre Mehus
*/
public class PasswordSettingsValidator implements Validator {
public boolean supports(Class clazz) {
return clazz.equals(PasswordSettingsCommand.class);
}
public void validate(Object obj, Errors errors) {
PasswordSettingsCommand command = (PasswordSettingsCommand) obj;
if (command.getPassword() == null || command.getPassword().length() == 0) {
errors.rejectValue("password", "usersettings.nopassword");
} else if (!command.getPassword().equals(command.getConfirmPassword())) {
errors.rejectValue("password", "usersettings.wrongpassword");
}
}
}

@ -1,53 +0,0 @@
/*
This file is part of Libresonic.
Libresonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Libresonic 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with Libresonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2016 (C) Libresonic Authors
Based upon Subsonic, Copyright 2009 (C) Sindre Mehus
*/
package org.libresonic.player.validator;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;
import org.libresonic.player.command.PremiumSettingsCommand;
import org.libresonic.player.controller.PremiumSettingsController;
import org.libresonic.player.service.SettingsService;
/**
* Validator for {@link PremiumSettingsController}.
*
* @author Sindre Mehus
*/
public class PremiumSettingsValidator implements Validator {
private SettingsService settingsService;
public boolean supports(Class clazz) {
return clazz.equals(PremiumSettingsCommand.class);
}
public void validate(Object obj, Errors errors) {
PremiumSettingsCommand command = (PremiumSettingsCommand) obj;
if (!settingsService.isLicenseValid(command.getLicenseInfo().getLicenseEmail(), command.getLicenseCode())) {
command.setSubmissionError(true);
errors.rejectValue("licenseCode", "premium.invalidlicense");
}
}
public void setSettingsService(SettingsService settingsService) {
this.settingsService = settingsService;
}
}

@ -3,9 +3,9 @@
xmlns:security="http://www.springframework.org/schema/security" xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd"> http://www.springframework.org/schema/security/spring-security.xsd">
<security:http auto-config='true'> <security:http auto-config='true'>
<!-- IS_AUTHENTICATED_ANONYMOUSLY --> <!-- IS_AUTHENTICATED_ANONYMOUSLY -->

@ -196,14 +196,6 @@
<property name="settingsService" ref="settingsService"/> <property name="settingsService" ref="settingsService"/>
<property name="securityService" ref="securityService"/> <property name="securityService" ref="securityService"/>
</bean> </bean>
<bean id="passwordSettingsController" class="org.libresonic.player.controller.PasswordSettingsController">
<property name="sessionForm" value="true"/>
<property name="commandClass" value="org.libresonic.player.command.PasswordSettingsCommand"/>
<property name="validator" ref="passwordSettingsValidator"/>
<property name="successView" value="passwordSettings"/>
<property name="formView" value="passwordSettings"/>
<property name="securityService" ref="securityService"/>
</bean>
<bean id="homeController" class="org.libresonic.player.controller.HomeController"> <bean id="homeController" class="org.libresonic.player.controller.HomeController">
<property name="viewName" value="home"/> <property name="viewName" value="home"/>
<property name="ratingService" ref="ratingService"/> <property name="ratingService" ref="ratingService"/>
@ -286,14 +278,6 @@
<property name="settingsService" ref="settingsService"/> <property name="settingsService" ref="settingsService"/>
<property name="mediaFileService" ref="mediaFileService"/> <property name="mediaFileService" ref="mediaFileService"/>
</bean> </bean>
<bean id="premiumSettingsController" class="org.libresonic.player.controller.PremiumSettingsController">
<property name="commandClass" value="org.libresonic.player.command.PremiumSettingsCommand"/>
<property name="successView" value="premiumSettings"/>
<property name="formView" value="premiumSettings"/>
<property name="validator" ref="premiumSettingsValidator"/>
<property name="settingsService" ref="settingsService"/>
<property name="securityService" ref="securityService"/>
</bean>
<bean id="multiController" class="org.libresonic.player.controller.MultiController"> <bean id="multiController" class="org.libresonic.player.controller.MultiController">
<property name="securityService" ref="securityService"/> <property name="securityService" ref="securityService"/>
<property name="settingsService" ref="settingsService"/> <property name="settingsService" ref="settingsService"/>
@ -344,10 +328,6 @@
<property name="viewName" value="db"/> <property name="viewName" value="db"/>
<property name="daoHelper" ref="daoHelper"/> <property name="daoHelper" ref="daoHelper"/>
</bean> </bean>
<bean id="premiumSettingsValidator" class="org.libresonic.player.validator.PremiumSettingsValidator">
<property name="settingsService" ref="settingsService"/>
</bean>
<bean id="passwordSettingsValidator" class="org.libresonic.player.validator.PasswordSettingsValidator"/>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="alwaysUseFullPath" value="true"/> <property name="alwaysUseFullPath" value="true"/>
@ -390,8 +370,6 @@
<prop key="/transcodingSettings.view">transcodingSettingsController</prop> <prop key="/transcodingSettings.view">transcodingSettingsController</prop>
<prop key="/internetRadioSettings.view">internetRadioSettingsController</prop> <prop key="/internetRadioSettings.view">internetRadioSettingsController</prop>
<prop key="/avatarUpload.view">avatarUploadController</prop> <prop key="/avatarUpload.view">avatarUploadController</prop>
<prop key="/passwordSettings.view">passwordSettingsController</prop>
<prop key="/premiumSettings.view">premiumSettingsController</prop>
<prop key="/allmusic.view">allmusicController</prop> <prop key="/allmusic.view">allmusicController</prop>
<prop key="/home.view">homeController</prop> <prop key="/home.view">homeController</prop>
<prop key="/editTags.view">editTagsController</prop> <prop key="/editTags.view">editTagsController</prop>

@ -88,7 +88,7 @@ public class TestCaseUtils {
* @return * @return
*/ */
public static Integer recordsInTable(String tableName, DaoHelper daoHelper) { public static Integer recordsInTable(String tableName, DaoHelper daoHelper) {
return daoHelper.getJdbcTemplate().queryForInt("select count(1) from " + tableName); return daoHelper.getJdbcTemplate().queryForObject("select count(1) from " + tableName,Integer.class);
} }

@ -16,8 +16,8 @@
<properties> <properties>
<failOnDependencyWarning>true</failOnDependencyWarning> <failOnDependencyWarning>true</failOnDependencyWarning>
<project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding> <project.build.sourceEncoding>iso-8859-1</project.build.sourceEncoding>
<cxf.version>2.4.2</cxf.version> <cxf.version>3.1.8</cxf.version>
<spring.version>3.2.17.RELEASE</spring.version> <spring.version>4.3.4.RELEASE</spring.version>
<spring.security.version>3.2.9.RELEASE</spring.security.version> <spring.security.version>3.2.9.RELEASE</spring.security.version>
</properties> </properties>
@ -230,7 +230,6 @@
</execution> </execution>
</executions> </executions>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
</project> </project>

Loading…
Cancel
Save