public static ByteSourceWrapper wrap(Object value) {
        if (value instanceof byte[]) {
            byte[] bytes = (byte[]) value;
            return new ByteSourceWrapper(bytes);
        } else if (value instanceof ByteSource) {
            byte[] bytes = ((ByteSource) value).getBytes();
            return new ByteSourceWrapper(bytes);
        }
        throw new IllegalArgumentException();
    }
This method generically accepts byte array or ByteSource instance.
src/main/java/org/apache/shiro/util/ByteSourceWrapper.java