Username Validation?
Page 1 of 1
Przepraszam
VIP Member



Posts: 14507
Location: Poland. New York.
PostPosted: Tue, 29th Apr 2014 01:15    Post subject: Username Validation?
Hello. I'm trying to implement username validation so that it only allows letters, numbers and _. Well only, check whether username has any other illegal characters

Here is my ValidUsername.java
Code:
package com.blabla.web.validator;
import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Constraint(validatedBy = ValidUsernameValidator.class)
@Documented
public @interface ValidUsername {
   
      String message() default "{com.blabla.constraints.username.invalid.special.characters}";

       Class<?>[] groups() default {};

       Class<? extends Payload>[] payload() default {};

}


Here is my ValidUsernameValidator.java
Code:
package com.blabla.web.validator;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class ValidUsernameValidator implements ConstraintValidator<ValidUsername, String> {
    private Pattern pattern;
    private Matcher matcher;

    private static final String USERNAME_PATTERN = "^[A-Za-z0-9_]$";
   
   @Override
   public void initialize(ValidUsername username) {
      pattern = Pattern.compile(USERNAME_PATTERN);
   }

   @Override
   public boolean isValid(String pUsername, ConstraintValidatorContext context) {
      boolean isValidUsername = false;
      System.out.println("isvalid function");
        CharSequence usernamestr = pUsername;   
        matcher = pattern.matcher(usernamestr); 
        System.out.println(pUsername);
        System.out.println(pattern);
        System.out.println(matcher.matches());
        if(matcher.matches()){ 
            isValidUsername = true; 
           }           
           return isValidUsername; 
          }
}


And my SignUpForm.java
Code:

@ValidUsername
private String mUsername;

   public String getUsername() {
      return mUsername;
   }
   public void setUsername(String pUsername) {
      mUsername = pUsername;
   }


And like, it still allows all the characters. I did some logs and it looks like it always returns a false value for some reason so it looks like it's not checking against it.

Any tips? ;\


Back to top
Przepraszam
VIP Member



Posts: 14507
Location: Poland. New York.
PostPosted: Tue, 29th Apr 2014 17:10    Post subject:
Duh. I am so retarded.

The code actually works fine.


Back to top
Page 1 of 1 All times are GMT + 1 Hour
NFOHump.com Forum Index - Programmers Corner
Signature/Avatar nuking: none (can be changed in your profile)  


Display posts from previous:   

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB 2.0.8 © 2001, 2002 phpBB Group