Cómo almacenar y usar la sal de un shiro de la base de datos

Yo uso shiro en la aplicación para la autenticación. Utilizo una contraseña con hash con un salt y los almaceno en mi base de datos de esta manera:

    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);
}

Guardo la sal con una cadena en mi base de datos. Ahora en mi reino quiero recuperar mis datos de la base de datos, uso un servicio transaccional para esto. Pero mi sal es un Fuerte, así que quiero que vuelva como tipo ByteSource con el método estático:

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

Pero cuando creo mi SaltedAuthenticationInfo no se autentica.

Creo que mi problema es de mi método de conversión:

private String byteArrayToHexString(byte[] bArray){

        StringBuffer buffer = new StringBuffer();

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

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

Gracias por tu ayuda.

Respuestas a la pregunta(4)

Su respuesta a la pregunta