Como armazenar e usar um sal de shiro do banco de dados

Eu uso shiro no aplicativo para autenticar. Eu uso senha hashed com um sal e eu os armazeno no meu banco de dados assim:

    private User createUserWithHashedPassword(String inName, String inFirstName, String inLastName, String inPassword){

    ByteSource salt  = randomNumberGenerator.nextBytes(32);

    byte[] byteTabSalt  = salt.getBytes();

    String strSalt = byteArrayToHexString(byteTabSalt);

    String hashedPasswordBase64 = new Sha256Hash(inPassword, salt, 1024).toBase64();

    return new User(inName,inFirstName,inLastName,hashedPasswordBase64,strSalt);
}

Eu guardo o sal com uma String no meu banco de dados. Agora no meu reino eu quero recuperar meus dados do banco de dados, eu uso um serviço transacional para isso. Mas meu sal é um Strong, então eu quero que ele volte como tipo ByteSource com o método estático:

ByteSource byteSourceSalt = Util.bytes(salt); //where the salt is a String

Mas quando eu crio meu SaltedAuthenticationInfo, ele não autentica.

Eu acho que o meu problema é do meu método de conversão:

private String byteArrayToHexString(byte[] bArray){

        StringBuffer buffer = new StringBuffer();

        for(byte b : bArray) {
            buffer.append(Integer.toHexString(b));
            buffer.append(" ");
        }

 return buffer.toString().toUpperCase();    
}

Obrigado pela ajuda.

questionAnswers(4)

yourAnswerToTheQuestion