Question
The following security controls should be applied to the application (check the NIST Security Controls Database for details, description and guidance for each control: AC-7
The following security controls should be applied to the application (check the NIST Security Controls Database for details, description and guidance for each control:
- AC-7 - UNSUCCESSFUL LOGON ATTEMPTS
- AC-8 - SYSTEM USE NOTIFICATION
- AU-3 - CONTENT OF AUDIT RECORDS
- AU-8 - TIME STAMPS
- IA-2(1) IDENTIFICATION AND AUTHENTICATION (ORGANIZATIONAL USERS) | NETWORK ACCESS TO PRIVILEGED ACCOUNTS (Note this is an enhancement of an existing low-impact security control)
- Select one additional low-impact security control and implement it. This can be an enhancement or a required low-impact security control. Selecting a control that provides documentation as opposed to code changes is also acceptable and encouraged.
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.paint.Color;
import javafx.scene.text.Text;
import javafx.stage.Stage;
/**
*
* @author jim Adopted from Oracle's Login Tutorial Application
* https://docs.oracle.com/javafx/2/get_started/form.htm
*/
public class login extends Application {
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("425 Login");
// Grid Pane divides your window into grids
GridPane grid = new GridPane();
// Align to Center
// Note Position is geometric object for alignment
grid.setAlignment(Pos.CENTER);
// Set gap between the components
// Larger numbers mean bigger spaces
grid.setHgap(10);
grid.setVgap(10);
// Create some text to place in the scene
Text scenetitle = new Text("Welcome. Login to continue.");
// Add text to grid 0,0 span 2 columns, 1 row
grid.add(scenetitle, 0, 0, 2, 1);
// Create Label
Label userName = new Label("User Name:");
// Add label to grid 0,1
grid.add(userName, 0, 1);
// Create Textfield
TextField userTextField = new TextField();
// Add textfield to grid 1,1
grid.add(userTextField, 1, 1);
// Create Label
Label pw = new Label("Password:");
// Add label to grid 0,2
grid.add(pw, 0, 2);
// Create Passwordfield
PasswordField pwBox = new PasswordField();
// Add Password field to grid 1,2
grid.add(pwBox, 1, 2);
// Create Login Button
Button btn = new Button("Login");
// Add button to grid 1,4
grid.add(btn, 1, 4);
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
// Set the Action when button is clicked
btn.setOnAction(new EventHandler
@Override
public void handle(ActionEvent e) {
// Authenticate the user
boolean isValid = authenticate(userTextField.getText(), pwBox.getText());
// If valid clear the grid and Welcome the user
if (isValid) {
grid.setVisible(false);
GridPane grid2 = new GridPane();
// Align to Center
// Note Position is geometric object for alignment
grid2.setAlignment(Pos.CENTER);
// Set gap between the components
// Larger numbers mean bigger spaces
grid2.setHgap(10);
grid2.setVgap(10);
Text scenetitle = new Text("Welcome " + userTextField.getText() + "!");
// Add text to grid 0,0 span 2 columns, 1 row
grid2.add(scenetitle, 0, 0, 2, 1);
Scene scene = new Scene(grid2, 500, 400);
primaryStage.setScene(scene);
primaryStage.show();
// If Invalid Ask user to try again
} else {
final Text actiontarget = new Text();
grid.add(actiontarget, 1, 6);
actiontarget.setFill(Color.FIREBRICK);
actiontarget.setText("Please try again.");
}
}
});
// Set the size of Scene
Scene scene = new Scene(grid, 500, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
/**
* @param user the username entered
* @param pword the password entered
* @return isValid true for authenticated
*/
public boolean authenticate(String user, String pword) {
boolean isValid = false;
if (user.equalsIgnoreCase("sdevadmin")
&& pword.equals("425!pass")) {
isValid = true;
}
return isValid;
}
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started