All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.payneteasy.superfly.password.RandomStoredSaltSource Maven / Gradle / Ivy

package com.payneteasy.superfly.password;

import org.springframework.beans.factory.annotation.Required;

import com.payneteasy.superfly.dao.UserDao;
import com.payneteasy.superfly.spisupport.SaltGenerator;

/**
 * Kuccyp
 * Date: 08.10.2010
 * Time: 14:07:47
 * (C) 2010
 * Skype: kuccyp
 */
public class RandomStoredSaltSource implements SaltSource{

    private UserDao userDao;
    private SaltGenerator saltGenerator;

    @Required
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Required
    public void setSaltGenerator(SaltGenerator saltGenerator) {
        this.saltGenerator = saltGenerator;
    }

    public String getSalt(String username) {
        String salt=userDao.getUserSalt(username);
        if(salt==null || salt.isEmpty()){
            salt = generateNewSaltAndSave(username);
        }
        return salt;
    }

    public String getSalt(long userId) {
        String salt = userDao.getUserSaltByUserId(userId);
        if (salt == null || salt.isEmpty()) {
            salt = generateNewSaltAndSave(userId);
        }
        return salt;
    }

    private String generateNewSaltAndSave(String username) {
        String salt = generateSalt();
        userDao.updateUserSalt(username,salt);
        return salt;
    }
    
    private String generateNewSaltAndSave(long userId) {
        String salt = generateSalt();
        userDao.updateUserSaltByUserId(userId, salt);
        return salt;
    }

    private String generateSalt() {
        return saltGenerator.generate();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy