Ignorando built-in de autenticação navegador ao fazer chamadas HTTP de Applet incorporado

votos
2
  • Eu tenho uma página web simples com um applet Java embutido.
  • O applet faz chamadas HTTP para diferentes câmeras Axis, que partilham a mesma autenticação (por exemplo, nome de usuário, senha).
  • Eu estou passando o nome de usuário e senha para o código Java em cima do lançamento do applet - não há problema.
  • Quando eu executar a partir de dentro NetBeans com o visualizador applet, eu recebo o pleno acesso às câmeras e ver streaming de vídeo - exatamente como anunciado.
  • O problema começa quando eu abrir a página HTML em um navegador web (Firefox).
  • Mesmo que meu código lida com a autenticação:

    URL u = new URL(useMJPGStream ? mjpgURL : jpgURL);
    huc = (HttpURLConnection) u.openConnection();
    
    
    String base64authorization = 
        securityMan.getAlias(this.securityAlias).getBase64authorization();
    // if authorization is required set up the connection with the encoded 
    // authorization-information
    if(base64authorization != null)
    {
        huc.setDoInput(true);
        huc.setRequestProperty(Authorization,base64authorization);
        huc.connect();
    }
    
    InputStream is = huc.getInputStream();
    connected = true;
    BufferedInputStream bis = new BufferedInputStream(is);
    dis= new DataInputStream(bis);
    
  • O navegador ainda traz uma autenticação pop-up e solicita o nome de usuário e senha para cada câmera separadamente!
  • Para piorar as coisas, as imagens exibidas a partir da câmara são congelados e idade (a partir de ontem à noite).
  • Como posso ignorar a autenticação do navegador?
Publicado 02/03/2010 em 20:46
fonte usuário
Em outras línguas...                            


2 respostas

votos
0

Quando executado no navegador base64authorizationnão nulo, correto?

Eu não sou realmente certo o que getBase64authorizationé suposto para retornar, mas estou bastante certo quando você chamar huc.setRequestProperty("Authorization", **autorization value**)ele está à procura de um HTTP valor autenticação básica. Significado **authorization value**precisa estar no formato Basic **base 64 encoding of username:password**como descrito aqui .

Talvez você só precisa adicionar o Basic(note o espaço à direita) string para sua propriedade.

Respondeu 02/03/2010 em 21:30
fonte usuário

votos
0

Fixo

Eu adicionado as seguintes linhas:

huc.setDoOuput(true);
huc.setUseCaches(false);

depois de

huc.setDoInput(true);

linha.

Respondeu 02/03/2010 em 21:30
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more