-
Notifications
You must be signed in to change notification settings - Fork 0
/
Authentication.java
51 lines (47 loc) · 1.95 KB
/
Authentication.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Authentication extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
public Authentication() {
this.setTitle("Authentication Required");
JLabel label = new JLabel("Enter your root password:");
label.setBounds(20, 20, 260, 30);
final JPasswordField value = new JPasswordField();
value.setBounds(20, 60, 300, 30);
JButton button = new JButton("Authenticate");
button.setBounds(100, 100, 140, 30);
this.add(value);
this.add(label);
this.add(button);
this.setSize(340, 200);
this.setLayout(null);
this.setVisible(true);
this.setLocationRelativeTo(null);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
String password = new String(value.getPassword());
try {
String[] cmd = { "/bin/bash", "-c", "echo " + password + "| sudo -S ufw status" };
Process pb = Runtime.getRuntime().exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(pb.getInputStream()));
String line = input.readLine();
if (line != null) {
new MyFirewall(password);
setVisible(false);
} else {
JOptionPane.showMessageDialog(null, "The password is wrong. Please try again!", "Warning", JOptionPane.WARNING_MESSAGE);
value.setText("");
}
} catch (IOException error) {
error.printStackTrace();
JOptionPane.showMessageDialog(null, "Something went wrong!", "Warning", JOptionPane.WARNING_MESSAGE);
// setVisible(false);
}
}
});
}
}