Problemas com o Java.IO

Galera,

Na minha aplicação faço upload de arquivos…esses arquivos são gravados no disco e no banco vai somente o caminho + nome desse arquivo…gostaria de disponibilizar esses arquivos para download, porém eles são restritos à algumas pessoas, então não posso simplesmente por a url no jsp para q façam download, antes precisa saber se a pessoa tem acesso a esses arquivos…

Se disponibilizar a url com o caminho do arquivo, sem utilizar a aplicação qualquer um conseguiria fazer o download…

Então tive a seguinte idéia: Instanciar um objeto File com o caminho e nome desse arquivo, então na servlet depois q verificar se o usuário tem acesso, dai disponibilizar para download…

No começo eu estava gravando o arquivo no banco (como não é performático, resolvi mudar) então quando recuperava eu tinha ele em um array de bytes…dai ficava facil, pois fazia:


byte[] arquivo = ....

response.setContentType("application/vnd.ms-excel");
ServletOutputStream out = response.getOutputStream();
out.write(arquivo);

Mas com esse novo modo q estou trabalhando, não consigo obter um array de bytes do arquivo…será q alguém saberia me dizer como fazer isso? Ou se tiver uma outra idéia para o problema de segurança dos arquivos, tbm será bem vinda…

Valeu.

César Lino