Commit b6e8eb9e authored by Noel Alonso's avatar Noel Alonso
Browse files

Añade validación de recaptcha en el servicio

Además elimina etiqueta de validación del dto y elimina referencias en el test de dto
Añade nuevo test de validación de recaptcha
parent 04eb110f
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -4,8 +4,6 @@ import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import es.redmic.user.manager.utils.RecaptchaValidator;

public class UserRegisterDTO extends UserDTO {

	@NotNull
@@ -16,7 +14,6 @@ public class UserRegisterDTO extends UserDTO {
	private Boolean accept;

	@NotNull
	@RecaptchaValidator
	private String reCaptcha;

	public UserRegisterDTO() {
+8 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import es.redmic.user.manager.repository.AccessRepository;
import es.redmic.user.manager.repository.UserRepository;
import es.redmic.user.manager.repository.UserSectorRepository;
import es.redmic.user.manager.utils.PasswordManager;
import es.redmic.user.manager.utils.RecaptchaValidator;

@Service
public class UserService extends UserBaseService<User, UserDTO> {
@@ -46,6 +47,9 @@ public class UserService extends UserBaseService<User, UserDTO> {

	UserRepository repository;

	@Autowired
	RecaptchaValidator recaptchaValidator;

	@Autowired
	public UserService(UserRepository repository) {
		super(repository);
@@ -53,6 +57,10 @@ public class UserService extends UserBaseService<User, UserDTO> {
	}

	public void save(UserRegisterDTO dto) {

		// Comprueba que el recaptcha es válido
		recaptchaValidator.checkRecaptcha(dto.getReCaptcha());

		// count(*) es necesario cuando la funci�n no devuelve nada
		String queryString = "SELECT count(*) from app.register(?, ?, ?, ?)";
		ArrayList<Object> parameters = new ArrayList<Object>();
+33 −0
Original line number Diff line number Diff line
package es.redmic.user.unit.common.utils;

import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.internal.util.reflection.Whitebox;

import es.redmic.exception.user.RecaptchaNotValidException;
import es.redmic.user.manager.utils.RecaptchaValidator;

public class RecaptchaValidatorTest {

	private static RecaptchaValidator recaptchaValidator = new RecaptchaValidator();

	@BeforeClass
	public static void setUp() {
		Whitebox.setInternalState(recaptchaValidator, "RECAPTCHA_SECRET", "ffff");
	}

	// No se puede testear el correcto funcionamiento porque el recaptcha correcto
	// solo se puede obtener desde una interfaz de usuario.

	@Test(expected = RecaptchaNotValidException.class)
	public void recaptchaValidator_ThrowException_IfRecaptchaIsNull() {

		recaptchaValidator.checkRecaptcha(null);
	}

	@Test(expected = RecaptchaNotValidException.class)
	public void recaptchaValidator_ThrowException_IfRecaptchaIsNotValid() {

		recaptchaValidator.checkRecaptcha("prueba");
	}
}
+4 −6
Original line number Diff line number Diff line
@@ -3,7 +3,7 @@ package es.redmic.user.unit.manager.dto;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.junit.MockitoJUnitRunner;

import es.redmic.user.manager.dto.UserRegisterDTO;

@@ -23,8 +23,6 @@ public class UserRegisterDTOTest extends DTOBaseTest<UserRegisterDTO> {

		dto.setAccept(true);
		dto.setPassword("password");
		
		addIgnoreError("reCaptcha", "Recaptcha not correct");
	}

	@Test