Skip to content

Commit 69d1ee1

Browse files
committed
fixed password encryption; fixed GUI bugs
1 parent 484fbcd commit 69d1ee1

File tree

6 files changed

+22
-17
lines changed

6 files changed

+22
-17
lines changed

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies {
1313
implementation 'com.google.code.gson:gson:2.10.1'
1414
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.2'
1515
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2'
16-
implementation group: 'org.springframework.security', name: 'spring-security-crypto', version: '4.1.3.RELEASE'
16+
implementation 'com.password4j:password4j:1.6.3'
1717
}
1818

1919
test {

src/main/java/edu/estg/server/ClientHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public ClientHandler(ArrayListSync<ClientHandler> clientHandlers, Socket socket,
1717
this.socket = socket;
1818
this.server = server;
1919
this.clientHandlers = clientHandlers;
20-
this.protocol = new Protocol(this, clientHandlers, server);
20+
this.protocol = new Protocol(this, server);
2121
this.bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
2222
this.bufferedWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
2323
this.clientHandlers.add(this);

src/main/java/edu/estg/server/Protocol.java

+1-7
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import com.google.gson.Gson;
44
import com.google.gson.reflect.TypeToken;
55
import edu.estg.utils.*;
6-
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
7-
86
import java.io.IOException;
97
import java.util.ArrayList;
108
import java.util.stream.Collectors;
@@ -14,18 +12,14 @@
1412
public class Protocol {
1513
private final JsonFileHelper jsonFileHelper;
1614
private final Gson jsonHelper;
17-
private final ArrayListSync<ClientHandler> clientHandlers;
1815
private final ClientHandler clientHandler;
1916
protected Server server;
20-
private final BCryptPasswordEncoder passwordEncoder;
2117

22-
public Protocol(ClientHandler clientHandler, ArrayListSync<ClientHandler> clientHandlers, Server server) throws IOException {
18+
public Protocol(ClientHandler clientHandler, Server server) throws IOException {
2319
this.clientHandler = clientHandler;
2420
this.server = server;
25-
this.clientHandlers = clientHandlers;
2621
this.jsonHelper = new Gson();
2722
this.jsonFileHelper = new JsonFileHelper("files/");
28-
this.passwordEncoder = new BCryptPasswordEncoder();
2923
}
3024

3125
protected synchronized String processMessage(String requestMessage) {

src/main/java/edu/estg/userInterface/GUI/InitialFrame.java

+11-8
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import com.google.gson.reflect.TypeToken;
6+
import com.password4j.Hash;
7+
import com.password4j.Password;
68
import edu.estg.userInterface.Client;
79
import edu.estg.utils.*;
8-
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
910

1011
import javax.swing.*;
1112
import java.awt.*;
@@ -42,7 +43,6 @@ public class InitialFrame extends JFrame {
4243
private PassengerMenuFrame passengerMenuFrame;
4344
private ArrayList<LocalNode> currentLocalNodes;
4445
private final ArrayList<String> linesToAdd;
45-
private final BCryptPasswordEncoder passwordEncoder;
4646

4747
public InitialFrame(Client client) throws IOException {
4848
this.jsonHelper = new GsonBuilder().serializeNulls().create();
@@ -51,7 +51,6 @@ public InitialFrame(Client client) throws IOException {
5151
Request<ArrayList<LocalNode>> request = new Request<>(RequestType.GET_CURRENT_LOCAL_NODES);
5252
this.client.sendMessage(this.jsonHelper.toJson(request));
5353
this.linesToAdd = new ArrayList<>();
54-
this.passwordEncoder = new BCryptPasswordEncoder();
5554
}
5655

5756
private void configButtons() {
@@ -92,14 +91,15 @@ private void configButtons() {
9291

9392

9493
loginButton.addActionListener(e -> {
95-
Login login = new Login(usernameLoginTextField.getText(), passwordEncoder.encode(String.valueOf(passwordLoginTextField.getPassword())));
94+
Hash hash = Password.hash(String.valueOf(passwordLoginTextField.getPassword())).withArgon2();
95+
Login login = new Login(usernameLoginTextField.getText(), hash.getResult());
9696

9797
// if is local node login
9898
if (isLoginLocalNode.get()) {
9999
Request<Login> request = new Request<>(RequestType.LOCAL_NODE_LOGIN, login);
100100
this.client.sendMessage(new Gson().toJson(request));
101101

102-
// if is passenger login
102+
// if is passenger login
103103
} else if (!isLoginLocalNode.get()) {
104104
Request<Login> request = new Request<>(RequestType.PASSENGER_LOGIN, login);
105105
this.client.sendMessage(new Gson().toJson(request));
@@ -110,19 +110,22 @@ private void configButtons() {
110110

111111
// if is local node register
112112
if (isRegisterLocalNode.get()) {
113-
LocalNode localNode = new LocalNode(nameRegisterTextField.getText(), usernameRegisterTextField.getText(), passwordEncoder.encode(String.valueOf(passwordRegisterTextField.getPassword())));
113+
Hash hash = Password.hash(String.valueOf(passwordRegisterTextField.getPassword())).withArgon2();
114+
115+
LocalNode localNode = new LocalNode(nameRegisterTextField.getText(), usernameRegisterTextField.getText(), hash.getResult());
114116
LocalNodeRegister localNodeRegister = new LocalNodeRegister(localNode);
115117
Request<LocalNodeRegister> request = new Request<>(RequestType.LOCAL_NODE_REGISTER, localNodeRegister);
116118
this.client.sendMessage(new Gson().toJson(request));
117119

118-
// if is passenger register
120+
// if is passenger register
119121
} else if (!isRegisterLocalNode.get()) {
120122
ArrayList<TrainLine> linesAdded = new ArrayList<>();
121123
for (int i = 0; i < trainList.getSelectedValuesList().size(); i++) {
122124
linesAdded.add(getTrainLineFromString(trainList.getSelectedValuesList().get(i)));
123125
}
124126

125-
Passenger passenger = new Passenger(nameRegisterTextField.getText(), usernameRegisterTextField.getText(), passwordEncoder.encode(String.valueOf(passwordRegisterTextField.getPassword())), linesAdded);
127+
Hash hash = Password.hash(String.valueOf(passwordRegisterTextField.getPassword())).withArgon2();
128+
Passenger passenger = new Passenger(nameRegisterTextField.getText(), usernameRegisterTextField.getText(), hash.getResult(), linesAdded);
126129

127130
PassengerRegister passengerRegister = new PassengerRegister(passenger);
128131
Request<PassengerRegister> request = new Request<>(RequestType.PASSENGER_REGISTER, passengerRegister);

src/main/java/edu/estg/userInterface/GUI/LocalNodeMenuFrame.java

+7
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.awt.event.WindowAdapter;
1111
import java.awt.event.WindowEvent;
1212
import java.util.ArrayList;
13+
import java.util.Objects;
1314

1415
import static javax.swing.JOptionPane.ERROR_MESSAGE;
1516
import static javax.swing.JOptionPane.showMessageDialog;
@@ -84,6 +85,11 @@ public void configButtons() {
8485

8586
sendMessageToPassengersButton.addActionListener(e -> {
8687
String message = JOptionPane.showInputDialog("Message:");
88+
if (Objects.equals(message, "")) {
89+
showMessageDialog(new JFrame(), "Please write a message!", "", ERROR_MESSAGE);
90+
return;
91+
}
92+
8793
if (linesList.isSelectionEmpty()) {
8894
showMessageDialog(new JFrame(), "Please select the affected line!","", ERROR_MESSAGE);
8995
return;
@@ -98,6 +104,7 @@ public void configButtons() {
98104

99105
Request<MessageToPassenger> request = new Request<>(RequestType.PASSENGER_MESSAGE_FROM_NODE, messageToPassenger);
100106
this.client.sendMessage(this.jsonHelper.toJson(request));
107+
linesList.clearSelection();
101108
});
102109
}
103110

src/main/java/edu/estg/userInterface/GUI/PassengerMenuFrame.java

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ public void configButtons() {
8080
Request<MessageFromPassenger> request = new Request<>(RequestType.PASSENGER_MESSAGE_TO_NODE, messageFromPassenger);
8181
this.client.sendMessage(this.jsonHelper.toJson(request));
8282
sendMessageTextField.setText("");
83+
listLinesAssociated.clearSelection();
8384
});
8485
}
8586

0 commit comments

Comments
 (0)