edit and finish class authenticate below do not give a solution (example copying from another source and giving it as a solution) that is not part of my code below. Also provided is user class. This is what I have so far please help me finish it. The task is listed below //Authenticate.java import java.util.Scanner; import java.io.File; Class Authenticate { private final int SIZE = 100; private User() users = new User[SIZE]; public Authenticator (String fileName) throws Exception; Scanner sc = new Scanner(new File(fileName)); int i = 0; While(sc.hasNext() && i < SIZE) {
edit and finish class authenticate below do not give a solution (example copying from another source and giving it as a solution) that is not part of my code below. Also provided is user class.
This is what I have so far please help me finish it. The task is listed below
//Authenticate.java
import java.util.Scanner;
import java.io.File;
Class Authenticate {
private final int SIZE = 100;
private User() users = new User[SIZE];
public Authenticator (String fileName) throws Exception;
Scanner sc = new Scanner(new File(fileName));
int i = 0;
While(sc.hasNext() && i < SIZE) {
users[i] = Users.read(sc);
i++
}
}
public void authenticate(String username, String password) throws Exception{
try {
User u = null;
for(User X : users) {
if(x.getUsername().equals(username) && x.verifyPassword(password){
return ;
_________________________________________________________________
//User.java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class User
{
private String username;
private String password;
private String hint;
public User(String username, String password, String hint)
{
this.username = username;
this.password = password;
this.hint = hint;
}
public boolean verifyPassword(String Password)
{
return Password.equals(password);
}
public String toString()
{
return "User "+username;
}
public static User read(Scanner scanner)
{
if(scanner.hasNext()){ }else {return null;}
return new User(scanner.next(), scanner.next(), scanner.next());
}
public String getUsername()
{
return username;
}
public String getHint()
{
return hint;
}
}
TASK
Implement the following class name Authenticator:
State
An array of type User (use a capacity of 100 — I would recommend using a class constant the way I did in the 06-Array class of Lecture 2).
An integer size
Behavior
A constructor accepting a file name, that opens a Scanner on the file and reads in User objects
A method named authenticate that accepts a username and password and attempts to authenticate them against the User array (by doing a search).
Not finding the username in the array causes an exception to be thrown
finding the username, but not matching the password (via verifyPassword) causes an exception with a different message to be thrown (this one with the password hint included).
See below for the exact exception messages expected
The return type of the method is void, i.e., the method returns nothing if the username and password are matched; otherwise an exception is thrown, as described above. (This is a common pattern for authentication methods — if everything is fine, the method simply returns, otherwise it throws an exception.)
The name of your class should be Authenticator. Please remove the public attribute from the class header.
Your class is tested by a AuthenticatorApp class that reads in Users from a file using your read method, loads them into an array and prompts the keyboard for a login sequence (username/password).
For example, if the file users.data contains:
weiss puppy2 woof-woof
arnow java cuppa
sokol brooklyn college
here are some sample excutions of the program:
username? arnow
password? java
Welcome to the system
Sample Test Run #2
Given the same users.data file as above, execution of the program should look like:
username? weiss
password? dontremember
*** Invalid password - hint: woof-woof
username? weiss
password? puppy2
Welcome to the system
Sample Test Run #3
Given the same users.data file as above, execution of the program should look like:
username? sokol
password? CUNY
*** Invalid password - hint: college
username? sokol
password? SUNY
*** Invalid password - hint: college
username? sokol
password? BC
*** Invalid password - hint: college
Too many failed attempts... please try again later
Trending now
This is a popular solution!
Step by step
Solved in 2 steps