Ir ao conteúdo
  • Cadastre-se
vagner.santos

Java Como inserir um login de autenticação no interior do browser ?

Recommended Posts

Descrição:Simulação de Servidor Proxy de Autenticação

O usuário inseri um url pré-estabelecido no browser, como resultado é redirecionado para um login de autenticação para que possa ser liberado o acesso à página solicitada. Após ser efetuado o login a página anteriormente requisitada é apresentada ao usuário. No mesmo instante essas ações serão demonstradas nos quadros de status e uma animação também apresentará o deslocamento dos pacotes entre o servidor e usuário.

A dúvida é de como inserir dentro do browser um login de autenticação em acesso offline se tratando de uma simulação.

Obs: Meu conhecimento em java é recente e por isso essa dificuldade. Ficarei agradecido se me ajudarem.

Seguem em anexo as telas e o código

 

Sem título.png

JQSHb.jpg

package Interface;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.io.IOException;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.event.HyperlinkEvent;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLFrameHyperlinkEvent;

public class SwingHTMLBrowser extends JFrame {

    private JTextArea userStatus, serverStatus;
    private JPanel actions;


    SwingHTMLBrowser() {



        super("Swing HTML Browser");
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setPreferredSize(new Dimension(600, 400));

        userStatus =  new JTextArea(5,5);
        JScrollPane userStatusPane = new JScrollPane(userStatus);
        userStatusPane.setBorder(BorderFactory.createTitledBorder("user Status"));
        userStatusPane.setPreferredSize(new Dimension(this.getPreferredSize().width/6, this.getPreferredSize().height));

        serverStatus = new JTextArea(5,5);
        JScrollPane serverStatusPane = new JScrollPane(serverStatus);
        serverStatusPane.setBorder(BorderFactory.createTitledBorder("server Status"));
        serverStatusPane.setPreferredSize(new Dimension(this.getPreferredSize().width/6, this.getPreferredSize().height));

        actions = new JPanel();
        actions.add(new JLabel("actions"));
        actions.setPreferredSize(new Dimension(this.getPreferredSize().width, 100));
        actions.setBorder(BorderFactory.createLineBorder(Color.red));

        add(actions, BorderLayout.NORTH);

        JPanel secondaryPane = new JPanel();
        secondaryPane.setLayout(new BoxLayout(secondaryPane, BoxLayout.X_AXIS));
        secondaryPane.add(userStatusPane);
        secondaryPane.add(serverStatusPane);
        secondaryPane.add(new Browser());

        add(secondaryPane, BorderLayout.CENTER);

        pack();
    }

    public static void main(String args[]) {

        SwingUtilities.invokeLater(() -> new SwingHTMLBrowser().setVisible(true));
    }
}

class Browser extends JPanel {

    private JTextField addressBar;
    private JEditorPane pane;

    public Browser() {
        setLayout(new BorderLayout());
        addressBar = new JTextField();
        pane = new JEditorPane();
        pane.setEditable(false);

        addressBar.addActionListener(e -> {
            String url = addressBar.getText();
            try {
                pane.setPage(url);
            } catch (IOException t) {
                t.printStackTrace();
            }

        });

        pane.addHyperlinkListener(evt -> {

            if (evt.getEventType() != HyperlinkEvent.EventType.ACTIVATED) {
                return;
            }

            JEditorPane srcPane = (JEditorPane) evt.getSource();

            if (evt instanceof HTMLFrameHyperlinkEvent) {
                HTMLDocument doc = (HTMLDocument) pane.getDocument();
                doc.processHTMLFrameHyperlinkEvent((HTMLFrameHyperlinkEvent) evt);
            } else {
                String url = evt.getURL().toString();
                addressBar.setText(url);
                try {
                    pane.setPage(url);
                } catch (Throwable t) {
                    t.printStackTrace();
                }
            }
        });
        add(addressBar, BorderLayout.NORTH);
        add(new JScrollPane(pane));
    }
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×