handle 409 status code
This commit is contained in:
parent
2abdf14ff8
commit
90b5676dca
@ -63,26 +63,17 @@ function register(){
|
|||||||
if(data.message == "success"){
|
if(data.message == "success"){
|
||||||
window.location.href = "<c:url value="/successRegister.html"></c:url>";
|
window.location.href = "<c:url value="/successRegister.html"></c:url>";
|
||||||
}
|
}
|
||||||
else if(data.message == "email"){
|
|
||||||
$("#emailError").show().html(data.error);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
|
|
||||||
var errors = $.parseJSON(data.message);
|
|
||||||
$.each( errors, function( index,item ){
|
|
||||||
$("#"+item.field+"Error").show().html(item.defaultMessage);
|
|
||||||
});
|
|
||||||
errors = $.parseJSON(data.error);
|
|
||||||
$.each( errors, function( index,item ){
|
|
||||||
$("#globalError").show().append(item.defaultMessage+"<br>");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.fail(function(data) {
|
.fail(function(data) {
|
||||||
if(data.responseJSON.error.indexOf("MailError") > -1)
|
if(data.responseJSON.error.indexOf("MailError") > -1)
|
||||||
{
|
{
|
||||||
window.location.href = "<c:url value="/emailError.html"></c:url>";
|
window.location.href = "<c:url value="/emailError.html"></c:url>";
|
||||||
}
|
}
|
||||||
|
else if(data.responseJSON.error == "UserAlreadyExist"){
|
||||||
|
$("#emailError").show().html(data.responseJSON.message);
|
||||||
|
}
|
||||||
else if(data.responseJSON.error.indexOf("InternalError") > -1){
|
else if(data.responseJSON.error.indexOf("InternalError") > -1){
|
||||||
window.location.href = "<c:url value="/login.html"></c:url>" + "?message=" + data.responseJSON.message;
|
window.location.href = "<c:url value="/login.html"></c:url>" + "?message=" + data.responseJSON.message;
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.baeldung.persistence.service.IUserService;
|
|||||||
import org.baeldung.persistence.service.UserDto;
|
import org.baeldung.persistence.service.UserDto;
|
||||||
import org.baeldung.registration.OnRegistrationCompleteEvent;
|
import org.baeldung.registration.OnRegistrationCompleteEvent;
|
||||||
import org.baeldung.validation.EmailExistsException;
|
import org.baeldung.validation.EmailExistsException;
|
||||||
|
import org.baeldung.web.error.UserAlreadyExistException;
|
||||||
import org.baeldung.web.error.UserNotFoundException;
|
import org.baeldung.web.error.UserNotFoundException;
|
||||||
import org.baeldung.web.util.GenericResponse;
|
import org.baeldung.web.util.GenericResponse;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -71,7 +72,7 @@ public class RegistrationController {
|
|||||||
|
|
||||||
final User registered = createUserAccount(accountDto);
|
final User registered = createUserAccount(accountDto);
|
||||||
if (registered == null) {
|
if (registered == null) {
|
||||||
return new GenericResponse("email", messages.getMessage("message.regError", null, request.getLocale()));
|
throw new UserAlreadyExistException();
|
||||||
}
|
}
|
||||||
final String appUrl = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
|
final String appUrl = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
|
||||||
eventPublisher.publishEvent(new OnRegistrationCompleteEvent(registered, request.getLocale(), appUrl));
|
eventPublisher.publishEvent(new OnRegistrationCompleteEvent(registered, request.getLocale(), appUrl));
|
||||||
|
@ -52,6 +52,14 @@ public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionH
|
|||||||
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request);
|
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.NOT_FOUND, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 409
|
||||||
|
@ExceptionHandler({ UserAlreadyExistException.class })
|
||||||
|
public ResponseEntity<Object> handleUserAlreadyExist(final RuntimeException ex, final WebRequest request) {
|
||||||
|
logger.error("409 Status Code", ex);
|
||||||
|
final GenericResponse bodyOfResponse = new GenericResponse(messages.getMessage("message.regError", null, request.getLocale()), "UserAlreadyExist");
|
||||||
|
return handleExceptionInternal(ex, bodyOfResponse, new HttpHeaders(), HttpStatus.CONFLICT, request);
|
||||||
|
}
|
||||||
|
|
||||||
// 500
|
// 500
|
||||||
@ExceptionHandler({ MailAuthenticationException.class })
|
@ExceptionHandler({ MailAuthenticationException.class })
|
||||||
public ResponseEntity<Object> handleMail(final RuntimeException ex, final WebRequest request) {
|
public ResponseEntity<Object> handleMail(final RuntimeException ex, final WebRequest request) {
|
||||||
|
@ -0,0 +1,23 @@
|
|||||||
|
package org.baeldung.web.error;
|
||||||
|
|
||||||
|
public final class UserAlreadyExistException extends RuntimeException {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 5861310537366287163L;
|
||||||
|
|
||||||
|
public UserAlreadyExistException() {
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserAlreadyExistException(final String message, final Throwable cause) {
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserAlreadyExistException(final String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserAlreadyExistException(final Throwable cause) {
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -6,6 +6,7 @@
|
|||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
|
||||||
|
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||||
<title><spring:message code="label.form.title"></spring:message></title>
|
<title><spring:message code="label.form.title"></spring:message></title>
|
||||||
</head>
|
</head>
|
||||||
@ -16,74 +17,68 @@
|
|||||||
<spring:message code="label.form.title"></spring:message>
|
<spring:message code="label.form.title"></spring:message>
|
||||||
</h1>
|
</h1>
|
||||||
<br>
|
<br>
|
||||||
<form action="/" method="POST" enctype="utf8">
|
<form action="/" method="POST" enctype="utf8" onsubmit="register()">
|
||||||
<div class="form-group row" >
|
<div class="form-group row" >
|
||||||
<label class="col-sm-3"><spring:message code="label.user.firstName"></spring:message></label>
|
<label class="col-sm-3"><spring:message code="label.user.firstName"></spring:message></label>
|
||||||
<span class="col-sm-5"><input class="form-control" name="firstName" value="" /></span>
|
<span class="col-sm-5"><input class="form-control" name="firstName" value="" required/></span>
|
||||||
<span id="firstNameError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
<span id="firstNameError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3"><spring:message code="label.user.lastName"></spring:message></label>
|
<label class="col-sm-3"><spring:message code="label.user.lastName"></spring:message></label>
|
||||||
<span class="col-sm-5"><input class="form-control" name="lastName" value="" /></span>
|
<span class="col-sm-5"><input class="form-control" name="lastName" value="" required/></span>
|
||||||
<span id="lastNameError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
<span id="lastNameError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3"><spring:message code="label.user.email"></spring:message></label>
|
<label class="col-sm-3"><spring:message code="label.user.email"></spring:message></label>
|
||||||
<span class="col-sm-5"><input class="form-control" name="email" value="" /></span>
|
<span class="col-sm-5"><input type="email" class="form-control" name="email" value="" required/></span>
|
||||||
<span id="emailError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
<span id="emailError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3"><spring:message code="label.user.password"></spring:message></label>
|
<label class="col-sm-3"><spring:message code="label.user.password"></spring:message></label>
|
||||||
<span class="col-sm-5"><input class="form-control" name="password" value="" type="password" /></span>
|
<span class="col-sm-5"><input id="password" class="form-control" name="password" value="" type="password" required/></span>
|
||||||
<span id="passwordError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
<span id="passwordError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group row">
|
<div class="form-group row">
|
||||||
<label class="col-sm-3"><spring:message code="label.user.confirmPass"></spring:message></label>
|
<label class="col-sm-3"><spring:message code="label.user.confirmPass"></spring:message></label>
|
||||||
<span class="col-sm-5"><input class="form-control" name="matchingPassword" value="" type="password" /></span>
|
<span class="col-sm-5"><input id="matchPassword" class="form-control" name="matchingPassword" value="" type="password" required/></span>
|
||||||
<span id="globalError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
<span id="globalError" class="alert alert-danger col-sm-4" style="display:none"></span>
|
||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<a href="#" class="btn btn-primary" onclick="register()">
|
<button type="submit" class="btn btn-primary">
|
||||||
<spring:message code="label.form.submit"></spring:message>
|
<spring:message code="label.form.submit"></spring:message>
|
||||||
</a>
|
</button>
|
||||||
</form>
|
</form>
|
||||||
<br>
|
<br>
|
||||||
<a href="<c:url value="login.html" />"><spring:message code="label.form.loginLink"></spring:message></a>
|
<a href="<c:url value="login.html" />"><spring:message code="label.form.loginLink"></spring:message></a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
function register(){
|
function register(){
|
||||||
|
event.preventDefault();
|
||||||
$(".alert").html("").hide();
|
$(".alert").html("").hide();
|
||||||
|
if($("#password").val() != $("#matchPassword").val()){
|
||||||
|
$("#globalError").show().html("Password mismatch");
|
||||||
|
return;
|
||||||
|
}
|
||||||
var formData= $('form').serialize();
|
var formData= $('form').serialize();
|
||||||
$.post("/spring-security-login-and-registration/user/registration",formData ,function(data){
|
$.post("<c:url value="/user/registration"/>",formData ,function(data){
|
||||||
if(data.message == "success"){
|
if(data.message == "success"){
|
||||||
window.location.href = "<c:url value="/successRegister.html"></c:url>";
|
window.location.href = "<c:url value="/successRegister.html"></c:url>";
|
||||||
}
|
}
|
||||||
else if(data.message == "email"){
|
|
||||||
$("#emailError").show().html(data.error);
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
|
|
||||||
var errors = $.parseJSON(data.message);
|
|
||||||
$.each( errors, function( index,item ){
|
|
||||||
$("#"+item.field+"Error").show().html(item.defaultMessage);
|
|
||||||
});
|
|
||||||
errors = $.parseJSON(data.error);
|
|
||||||
$.each( errors, function( index,item ){
|
|
||||||
$("#globalError").show().append(item.defaultMessage+"<br>");
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
.fail(function(data) {
|
.fail(function(data) {
|
||||||
if(data.responseJSON.error.indexOf("MailError") > -1)
|
if(data.responseJSON.error.indexOf("MailError") > -1)
|
||||||
{
|
{
|
||||||
window.location.href = "<c:url value="/emailError.html"></c:url>";
|
window.location.href = "<c:url value="/emailError.html"></c:url>";
|
||||||
}
|
}
|
||||||
|
else if(data.responseJSON.error == "UserAlreadyExist"){
|
||||||
|
$("#emailError").show().html(data.responseJSON.message);
|
||||||
|
}
|
||||||
else if(data.responseJSON.error.indexOf("InternalError") > -1){
|
else if(data.responseJSON.error.indexOf("InternalError") > -1){
|
||||||
window.location.href = "<c:url value="/login.html"></c:url>" + "?message=" + data.responseJSON.message;
|
window.location.href = "<c:url value="/login.html"></c:url>" + "?message=" + data.responseJSON.message;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user