Add check for username - Allow only numbers, letters, periods, underscores and hyphens
This commit is contained in:
parent
3390ceb4a8
commit
ba055250a0
|
@ -63,7 +63,7 @@ public class RegisterServlet extends HttpServlet {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
if (username.matches("^[a-zA-Z0-9][a-zA-Z0-9_-]{4,150}") && !ldapActions.usernameExists(username) && !ldapActions.emailExists(email)
|
if (username.matches("^[a-zA-Z0-9._-]{4,150}") && !ldapActions.usernameExists(username) && !ldapActions.emailExists(email)
|
||||||
&& !ldapActions.isZombieUsersEmail(email) && !ldapActions.isZombieUsersUsername(username)) {
|
&& !ldapActions.isZombieUsersEmail(email) && !ldapActions.isZombieUsersUsername(username)) {
|
||||||
|
|
||||||
ldapActions.createZombieUser(username, email, firstName, lastName, organization, password);
|
ldapActions.createZombieUser(username, email, firstName, lastName, organization, password);
|
||||||
|
@ -102,7 +102,7 @@ public class RegisterServlet extends HttpServlet {
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if(!username.matches("^[a-zA-Z0-9][a-zA-Z0-9_-]{4,150}")){
|
if(!username.matches("^[a-zA-Z0-9._-]{4,150}")) {
|
||||||
|
|
||||||
if (username.length() < 5) {
|
if (username.length() < 5) {
|
||||||
request.getSession().setAttribute("username_message", "Minimum username length 5 characters.");
|
request.getSession().setAttribute("username_message", "Minimum username length 5 characters.");
|
||||||
|
@ -110,8 +110,13 @@ public class RegisterServlet extends HttpServlet {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (username.length() > 150) {
|
if (username.length() > 150) {
|
||||||
request.getSession().setAttribute("username_message", "Maximum username lenght 150 characters.");
|
request.getSession().setAttribute("username_message", "Maximum username length 150 characters.");
|
||||||
logger.info("Maximum username lenght 150 characters.");
|
logger.info("Maximum username length 150 characters.");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!username.matches("^[a-zA-Z0-9\\.\\_\\-]")) {
|
||||||
|
request.getSession().setAttribute("username_allowed_message", "You can use only letters, numbers, underscores, hyphens and periods.");
|
||||||
|
logger.info("Only letters, numbers, underscores, hyphens and periods.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
function validateForm() {
|
function validateForm() {
|
||||||
|
|
||||||
|
var username = $("#username").val();
|
||||||
var email = $("#email").val();
|
var email = $("#email").val();
|
||||||
var email_conf = $("#email_conf").val();
|
var email_conf = $("#email_conf").val();
|
||||||
var password = $("#password").val();
|
var password = $("#password").val();
|
||||||
var password_conf = $("#password_conf").val();
|
var password_conf = $("#password_conf").val();
|
||||||
|
|
||||||
|
var isValidUsername = validateUsername(username);
|
||||||
var isValidEmail = validateEmail(email);
|
var isValidEmail = validateEmail(email);
|
||||||
var isValidPassword = validatePassword(password);
|
var isValidPassword = validatePassword(password);
|
||||||
var hasError = false;
|
var hasError = false;
|
||||||
|
var isUsernameFilled = false;
|
||||||
var isEmailFilled = false;
|
var isEmailFilled = false;
|
||||||
var isPasswordFilled = false;
|
var isPasswordFilled = false;
|
||||||
|
|
||||||
|
@ -52,11 +55,25 @@ function validateForm() {
|
||||||
$(".msg_username_error").show();
|
$(".msg_username_error").show();
|
||||||
hasError = true;
|
hasError = true;
|
||||||
} else {
|
} else {
|
||||||
|
isUsernameFilled = true;
|
||||||
$(".msg_username_error").hide();
|
$(".msg_username_error").hide();
|
||||||
$("#username").removeClass('aai-form-danger');
|
$("#username").removeClass('aai-form-danger');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If username is filled
|
||||||
|
if (isUsernameFilled) {
|
||||||
|
// Check if username is valid
|
||||||
|
if (!isValidUsername) {
|
||||||
|
$("#username").addClass('uk-input aai-form-danger');
|
||||||
|
$(".msg_username_allowed_characters").show();
|
||||||
|
hasError = true;
|
||||||
|
} else {
|
||||||
|
$(".msg_username_allowed_characters").hide();
|
||||||
|
$("#username").removeClass('aai-form-danger');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if($("#verification_code").val() != undefined) {
|
if($("#verification_code").val() != undefined) {
|
||||||
if($.trim($("#verification_code").val()).length <= 0) {
|
if($.trim($("#verification_code").val()).length <= 0) {
|
||||||
$("#verification_code").addClass('uk-input aai-form-danger');
|
$("#verification_code").addClass('uk-input aai-form-danger');
|
||||||
|
@ -156,6 +173,11 @@ function validateForm() {
|
||||||
return !hasError;
|
return !hasError;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validateUsername(username) {
|
||||||
|
var re = /^[a-zA-Z0-9._-]{4,150}$/;
|
||||||
|
return re.test(username);
|
||||||
|
}
|
||||||
|
|
||||||
function validateEmail(email) {
|
function validateEmail(email) {
|
||||||
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
|
||||||
return re.test(email);
|
return re.test(email);
|
||||||
|
|
|
@ -74,9 +74,11 @@
|
||||||
<c:remove var="organization" scope="session" />
|
<c:remove var="organization" scope="session" />
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<span class="msg_username_min_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Minimum username length 5 characters.</span>
|
<span class="msg_username_min_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Minimum username length 5 characters.</span>
|
||||||
<span class="msg_username_max_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Maximum username lenght 150 characters.</span>
|
<span class="msg_username_max_lenght uk-text-danger uk-text-small uk-float-left" style="display:none">Maximum username length 150 characters.</span>
|
||||||
|
<span class="msg_username_allowed_characters uk-text-danger uk-text-small uk-float-left" style="display:none">You can use only letters, numbers, underscores, hyphens and periods.</span>
|
||||||
<span class="msg_username_error uk-text-danger uk-text-small uk-float-left" style="display:none">Please enter your username.</span>
|
<span class="msg_username_error uk-text-danger uk-text-small uk-float-left" style="display:none">Please enter your username.</span>
|
||||||
<span id="username_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_message}</span>
|
<span id="username_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_message}</span>
|
||||||
|
<span id="username_allowed_server_error" class="uk-text-danger uk-text-small uk-float-left">${username_allowed_message}</span>
|
||||||
<c:remove var="username_message" scope="session" />
|
<c:remove var="username_message" scope="session" />
|
||||||
<input id="username" name="username" type="text" placeholder="Username (*)" class="form-control" value=${username}></div>
|
<input id="username" name="username" type="text" placeholder="Username (*)" class="form-control" value=${username}></div>
|
||||||
<c:remove var="username" scope="session" />
|
<c:remove var="username" scope="session" />
|
||||||
|
@ -178,6 +180,12 @@
|
||||||
} else {
|
} else {
|
||||||
$(".msg_username_max_lenght").fadeIn();
|
$(".msg_username_max_lenght").fadeIn();
|
||||||
}
|
}
|
||||||
|
var allowedChars = /^[a-zA-Z0-9._-]{4,150}$/;
|
||||||
|
if (usernameInput.value.match(allowedChars)) {
|
||||||
|
$(".msg_username_allowed_characters").fadeOut();
|
||||||
|
} else {
|
||||||
|
$(".msg_username_allowed_characters").fadeIn();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// myEmailInput.onfocusOut = function() {
|
// myEmailInput.onfocusOut = function() {
|
||||||
//
|
//
|
||||||
|
@ -197,6 +205,8 @@
|
||||||
$(this).removeClass('aai-form-danger');
|
$(this).removeClass('aai-form-danger');
|
||||||
$(".msg_username_error").fadeOut();
|
$(".msg_username_error").fadeOut();
|
||||||
$("#username_server_error").fadeOut();
|
$("#username_server_error").fadeOut();
|
||||||
|
$("#username_allowed_server_error").fadeOut();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#email").focusin(function () {
|
$("#email").focusin(function () {
|
||||||
|
|
Loading…
Reference in New Issue