Search in sources :

Example 11 with AccountPo

use of io.nuls.account.storage.po.AccountPo in project nuls by nuls-io.

the class AccountBaseService method setPassword.

/**
 * 设置密码
 * Set password (Encryption account)
 *
 * @param address
 * @param password
 * @return
 */
public Result setPassword(String address, String password) {
    if (!AddressTool.validAddress(address)) {
        return Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
    }
    if (StringUtils.isBlank(password)) {
        return Result.getFailed(AccountErrorCode.NULL_PARAMETER);
    }
    if (!StringUtils.validPassword(password)) {
        return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
    }
    Account account = accountService.getAccount(address).getData();
    if (null == account) {
        return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
    }
    if (account.isEncrypted()) {
        return Result.getFailed(AccountErrorCode.ACCOUNT_IS_ALREADY_ENCRYPTED);
    }
    try {
        account.encrypt(password);
        Result result = accountStorageService.updateAccount(new AccountPo(account));
        if (result.isFailed()) {
            return Result.getFailed(AccountErrorCode.FAILED);
        }
        accountCacheService.localAccountMaps.put(account.getAddress().getBase58(), account);
    } catch (NulsException e) {
        Log.error(e);
        return Result.getFailed(AccountErrorCode.FAILED);
    }
    return Result.getSuccess().setData(true);
}
Also used : Account(io.nuls.account.model.Account) NulsException(io.nuls.kernel.exception.NulsException) AccountPo(io.nuls.account.storage.po.AccountPo) Result(io.nuls.kernel.model.Result)

Example 12 with AccountPo

use of io.nuls.account.storage.po.AccountPo in project nuls by nuls-io.

the class AccountBaseService method changePassword.

/**
 * 根据原密码修改账户密码
 * Change the account password according to the current password
 *
 * @param oldPassword
 * @param newPassword
 * @return
 */
public Result changePassword(String address, String oldPassword, String newPassword) {
    if (!AddressTool.validAddress(address)) {
        return Result.getFailed(AccountErrorCode.ADDRESS_ERROR);
    }
    if (StringUtils.isBlank(oldPassword)) {
        return Result.getFailed(AccountErrorCode.PARAMETER_ERROR);
    }
    if (StringUtils.isBlank(newPassword)) {
        return Result.getFailed(AccountErrorCode.PARAMETER_ERROR);
    }
    if (!StringUtils.validPassword(oldPassword)) {
        return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
    }
    if (!StringUtils.validPassword(newPassword)) {
        return Result.getFailed(AccountErrorCode.PASSWORD_FORMAT_WRONG);
    }
    Account account = accountService.getAccount(address).getData();
    if (null == account) {
        return Result.getFailed(AccountErrorCode.ACCOUNT_NOT_EXIST);
    }
    try {
        if (!account.isEncrypted()) {
            return Result.getFailed(AccountErrorCode.ACCOUNT_UNENCRYPTED);
        }
        if (!account.validatePassword(oldPassword)) {
            return Result.getFailed(AccountErrorCode.PASSWORD_IS_WRONG);
        }
        account.unlock(oldPassword);
        account.encrypt(newPassword, true);
        AccountPo po = new AccountPo(account);
        Result result = accountStorageService.updateAccount(po);
        if (result.isFailed()) {
            return Result.getFailed(AccountErrorCode.FAILED);
        }
        accountCacheService.localAccountMaps.put(account.getAddress().getBase58(), account);
        return result.setData(true);
    } catch (NulsException e) {
        Log.error(e);
        return Result.getFailed(e.getErrorCode());
    }
}
Also used : Account(io.nuls.account.model.Account) NulsException(io.nuls.kernel.exception.NulsException) AccountPo(io.nuls.account.storage.po.AccountPo) Result(io.nuls.kernel.model.Result)

Aggregations

AccountPo (io.nuls.account.storage.po.AccountPo)12 NulsException (io.nuls.kernel.exception.NulsException)8 Result (io.nuls.kernel.model.Result)7 Account (io.nuls.account.model.Account)5 AliasPo (io.nuls.account.storage.po.AliasPo)4 IOException (java.io.IOException)3 CoinDataResult (io.nuls.account.ledger.model.CoinDataResult)2 MultiSigAccount (io.nuls.account.model.MultiSigAccount)2 CryptoException (io.nuls.core.tools.crypto.Exception.CryptoException)2 NulsRuntimeException (io.nuls.kernel.exception.NulsRuntimeException)1 Address (io.nuls.kernel.model.Address)1 SignatureException (java.security.SignatureException)1