Package org.dspace.app.webui.cris.validator

Source Code of org.dspace.app.webui.cris.validator.WSValidator

/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* https://github.com/CILEA/dspace-cris/wiki/License
*/
package org.dspace.app.webui.cris.validator;

import java.net.InetAddress;
import java.net.UnknownHostException;

import org.apache.commons.validator.routines.InetAddressValidator;
import org.dspace.app.cris.model.ws.User;
import org.dspace.app.cris.service.ApplicationService;
import org.dspace.app.cris.util.AddressUtils;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

public class WSValidator implements Validator
{

    private InetAddressValidator validator = InetAddressValidator.getInstance();

    private Class clazz;

    private ApplicationService applicationService;

    public boolean supports(Class arg0)
    {
        return clazz.isAssignableFrom(arg0);
    }

    public void validate(Object arg0, Errors arg1)
    {
        User ws = (User) arg0;

        if (ws.getTypeDef().equals(User.TYPENORMAL))
        {
            ValidationUtils.rejectIfEmptyOrWhitespace(arg1,
                    "normalAuth.username", "error.form.ws.username.mandatory",
                    "Username is mandatory");
            ValidationUtils.rejectIfEmptyOrWhitespace(arg1,
                    "normalAuth.password", "error.form.ws.password.mandatory",
                    "Password is mandatory");
        }
        else
        {
            ValidationUtils.rejectIfEmptyOrWhitespace(arg1,
                    "specialAuth.token", "error.form.ws.token.mandatory",
                    "Token is mandatory");
            ValidationUtils.rejectIfEmptyOrWhitespace(arg1,
                    "specialAuth.fromIP", "error.form.ws.fromip.mandatory",
                    "Single IP is mandatory");

            Long froms = null;
            Long tos = null;
            if (ws.getFromIP() != null && !ws.getFromIP().isEmpty())
            {
                if (!validator.isValidInet4Address(ws.getFromIP()))
                {
                    arg1.reject("specialAuth.fromIP", "from IP not well formed");
                }
                else
                {
                    try
                    {
                        froms = AddressUtils.ipToLong(InetAddress.getByName(ws.getFromIP()));
                    }
                    catch (UnknownHostException e)
                    {
                        arg1.reject("specialAuth.fromIP",
                                "Unknown host exception");
                    }
                }

                if (ws.getToIP() != null && !ws.getToIP().isEmpty())
                {
                    if (!validator.isValidInet4Address(ws.getToIP()))
                    {
                        arg1.reject("specialAuth.ToIP", "to IP not well formed");
                    }
                    else
                    {
                        try
                        {
                            tos = AddressUtils.ipToLong(InetAddress.getByName(ws.getToIP()));
                                   
                        }
                        catch (UnknownHostException e)
                        {
                            arg1.reject("specialAuth.toIP",
                                    "Unknown host exception");
                        }
                    }
                }

                if (froms != null && tos != null)
                {
                   
                    if (froms >= tos)
                    {
                        arg1.reject("specialAuth.toIP", "Range not well formed");   
                    }                  
                   
                   
                }
            }

        }

    }

    
    public void setClazz(Class clazz)
    {
        this.clazz = clazz;
    }

    public void setApplicationService(ApplicationService applicationService)
    {
        this.applicationService = applicationService;
    }
}
TOP

Related Classes of org.dspace.app.webui.cris.validator.WSValidator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.