입력 필드를 기반으로 오류 메시지 분류

알았다

사용자 이름, 비밀번호 및 유형의 3 가지 입력 필드가 있습니다.

3 개 중 하나가 잘못된 경우 "usern & pass is not correct"라는 오류 메시지가 1 개만 표시됩니다.

비밀번호, 사용자 이름 또는 유형 값이 잘못 입력되었는지 여부를 표시하도록 오류 메시지를 분석하려면 어떻게해야합니까?

내가 사용한 두 파일은 Login Model과 LoginController입니다. BTW, 아래 코드에는 오류가 없습니다.

완벽하게 작동합니다. 오류 메시지를 분석하기 위해 확장하고 싶습니다.

LoginController 파일 :

public class LoginController implements Initializable {

    /**
     * Initializes the controller class.
     */
    public LoginModel loginModel = new LoginModel();   
    @FXML private Label isConnected;
    @FXML private JFXTextField txtUsername;
    @FXML private JFXPasswordField txtPassword;
    @FXML private ComboBox<String> comboType;

    ObservableList<String> list = FXCollections.observableArrayList("admin", "manager", "clerk");

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        comboType.setItems(list);
        if(loginModel.isDbConnected()) {
            isConnected.setText("Connected");
        }
        else {
            isConnected.setText("Not Connected");
        }
    }

    public void Login (ActionEvent event) {
        try {
            if(loginModel.isLogin(comboType.getValue(), txtUsername.getText(), txtPassword.getText())) {
                isConnected.setText("usern & pass is correct");

                //closes login fxml file
                ((Node)event.getSource()).getScene().getWindow().hide();

                //loads main interface fxml file
                Stage primaryStage = new Stage();
                FXMLLoader loader = new FXMLLoader();
                Pane root = loader.load(getClass().getResource("/gui/uicomponents/Main.fxml").openStream()); 
                MainController mainController = (MainController)loader.getController();
                mainController.getUser("Hi " + txtUsername.getText());
                Scene scene = new Scene(root);
                scene.getStylesheets().add(getClass().getResource("/resources/css/Consolidated.css").toExternalForm());
                primaryStage.setMaximized(true);
                primaryStage.setTitle("Main Interface");
                primaryStage.setScene(scene);
                primaryStage.show(); 
            }
            else {
                isConnected.setText("usern & pass is not correct");
            }
        } catch (SQLException ex) {
            isConnected.setText("usern & pass is not correct");  
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(LoginController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }      
}

LoginModel 파일 :

public class LoginModel {
    Connection connection;
    public LoginModel() {
        connection = SqliteConnection.Connector();
        if(connection == null) {
            System.out.println("Connection to DB Failed");
            System.exit(1);          
        }
    }

    public boolean isDbConnected() {
        try {
            return !connection.isClosed();
        } catch (SQLException ex) {
            Logger.getLogger(LoginModel.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    public boolean isLogin(String type, String user, String pass) throws SQLException {
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String query = "select * from users where type = ? and username = ? and password = ?";
        try {
            preparedStatement = connection.prepareStatement(query);
            preparedStatement.setString(1, type);
            preparedStatement.setString(2, user);
            preparedStatement.setString(3, pass);       
            resultSet = preparedStatement.executeQuery();

            //if returns result from db
            if(resultSet.next()) {
                return true;
            }
            else {
                return false;
            }
        }
        catch(Exception e) {
            System.out.println(e);
            return false;            
        }
        finally {
            preparedStatement.close();
            resultSet.close();
        }
    }
}
개발자

그것은 보안의 관점에서 좋은 방법이 아닙니다 밝힐 것을하는 세부 사항의 부분, 즉, 당신이 말을 더 힌트를 제공하고 있기 때문에 해커에게 응용 프로그램이 취약 부정확하게된다는이 있는지 userid정확하지 않거나 password올바르지 않거나 type올바르지 않습니다 .

그러나 자신의 프로젝트 요구 사항으로 인해 매우 구체적인 오류 메시지를 표시하려는 경우에는 Typeand UserNameexist 또는 NOT 을 확인한 다음 아래와 같이 사용자 지정 예외 TypeNotFoundException또는 UserNameNotFoundException예외와 같은 사용자 지정 예외를 정의하고 throw하여 이를 달성 할 수 있습니다.

Login () 메서드 :

public void Login (ActionEvent event) {
        try {
            if(loginModel.isLogin(comboType.getValue(), 
                 txtUsername.getText(), txtPassword.getText())) {
                //add your code
            }
            else {
                isConnected.setText(" pass is not correct");
            }
        } catch (TypeNotFoundException ex) {
            isConnected.setText("Type is not correct");  
            //add your logger      
     } catch (UserNameNotFoundException ex) {
         isConnected.setText("Username is not correct");  
          //add your logger
        } catch (SQLException ex) {
           isConnected.setText("technical problem,please try after some time");  
           //add your logger
        } catch (IOException ex) {
          //add your logger
        }
    }

isLogin () :

public boolean isLogin(String type, String user, String pass) throws SQLException {
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        String query = "select * from users where type = ? 
            and username = ? and password = ?";
        try {
           //other code

            //if returns result from db
            if(resultSet.next()) {
                return true;
            }
            else {
                //String typeQuery = "select * from users where type = ?";
                //Execute the typeQuery and throw TypeNotFoundException

                //String userNameQuery = "select * from users where username = ?";
                //Execute the userNameQuery and throw UserNameNotFoundException

                return false;
            }
        } //other code as is
    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

입력 필드에서 오류 메시지 감지

분류에서Dev

'예기치 않은 에코'PHP 오류 메시지-HTML 입력 '값'필드에 PHP 변수 출력

분류에서Dev

선택 목록을 기반으로 필드 삽입시 Siebel 작업 오류

분류에서Dev

jQuery 유효성 검사 필드 : 유효한 정보를 입력 할 때 사라지는 오류 메시지 가져 오기

분류에서Dev

블레이드 파일의 입력 필드 아래에 오류 메시지를 표시하는 방법-Laravel

분류에서Dev

입력 된 필드의 길이를 나타 내기 위해 Hibernate @Size 오류 메시지를 사용자 정의하는 방법

분류에서Dev

사용자가 특정 단어를 입력하지 않으면 오류 메시지 출력

분류에서Dev

USB 키보드를 제거 할 때 '원자력으로 예약'오류가 발생하고 오류 메시지를 읽는 방법은 무엇입니까?

분류에서Dev

javascript-오류 메시지를 입력 할 필요가없는 assert 함수

분류에서Dev

Django 양식은 입력 필드 아래에 오류 메시지를 렌더링합니까?

분류에서Dev

쿼리시``독립적으로 반복되는 여러 필드를 동시에 출력 할 수 없음 ''오류

분류에서Dev

그렇지 않으면 메서드를 충돌시키는 수학 오류 (0으로 나누기 등) 반환

분류에서Dev

axios 요청으로 422 오류를 필드 / 오류로 분할하는 방법은 무엇입니까?

분류에서Dev

노드 syslog가 "오류 처리 로그 메시지"를 출력합니다.

분류에서Dev

Doxygen 출력으로 chmcmd는 가짜 오류 메시지를 생성합니다.

분류에서Dev

양식 필드, 오류 발생시 입력 데이터 유지

분류에서Dev

ffmpeg. 입력 프로세스 종료시 분할 오류

분류에서Dev

Minitest 오류 코드가 오류 메시지를 반환하도록하는 방법은 무엇입니까?

분류에서Dev

트리거 출력에서 오류 메시지를 반환하는 방법은 무엇입니까?

분류에서Dev

트리거 출력에서 오류 메시지를 반환하는 방법은 무엇입니까?

분류에서Dev

Java 계산기로 잘못된 입력에 대한 오류 메시지 생성

분류에서Dev

지시문을 사용하여 양식의 여러 입력 필드에서 $ 오류 메시지 제거

분류에서Dev

Paramiko는 출력과 오류 메시지를 어떻게 분리합니까?

분류에서Dev

Vaadin 14-다른 입력 필드와 마찬가지로 파일 업로드시 오류 표시

분류에서Dev

jQuery는 입력에서 게시 오류 메시지를 확인합니다.

분류에서Dev

빈 이메일 입력 필드를 비워 둘 때 오류 발생

분류에서Dev

증분 while 루프를 기반으로 백분율을 결정할 때 논리 오류로 인한 출력 오류

분류에서Dev

필드가 TypeError를 반환하는 경우 JSON 구문 분석 오류 무시

분류에서Dev

필드 필수 오류 메시지를 정의 할 위치

Related 관련 기사

  1. 1

    입력 필드에서 오류 메시지 감지

  2. 2

    '예기치 않은 에코'PHP 오류 메시지-HTML 입력 '값'필드에 PHP 변수 출력

  3. 3

    선택 목록을 기반으로 필드 삽입시 Siebel 작업 오류

  4. 4

    jQuery 유효성 검사 필드 : 유효한 정보를 입력 할 때 사라지는 오류 메시지 가져 오기

  5. 5

    블레이드 파일의 입력 필드 아래에 오류 메시지를 표시하는 방법-Laravel

  6. 6

    입력 된 필드의 길이를 나타 내기 위해 Hibernate @Size 오류 메시지를 사용자 정의하는 방법

  7. 7

    사용자가 특정 단어를 입력하지 않으면 오류 메시지 출력

  8. 8

    USB 키보드를 제거 할 때 '원자력으로 예약'오류가 발생하고 오류 메시지를 읽는 방법은 무엇입니까?

  9. 9

    javascript-오류 메시지를 입력 할 필요가없는 assert 함수

  10. 10

    Django 양식은 입력 필드 아래에 오류 메시지를 렌더링합니까?

  11. 11

    쿼리시``독립적으로 반복되는 여러 필드를 동시에 출력 할 수 없음 ''오류

  12. 12

    그렇지 않으면 메서드를 충돌시키는 수학 오류 (0으로 나누기 등) 반환

  13. 13

    axios 요청으로 422 오류를 필드 / 오류로 분할하는 방법은 무엇입니까?

  14. 14

    노드 syslog가 "오류 처리 로그 메시지"를 출력합니다.

  15. 15

    Doxygen 출력으로 chmcmd는 가짜 오류 메시지를 생성합니다.

  16. 16

    양식 필드, 오류 발생시 입력 데이터 유지

  17. 17

    ffmpeg. 입력 프로세스 종료시 분할 오류

  18. 18

    Minitest 오류 코드가 오류 메시지를 반환하도록하는 방법은 무엇입니까?

  19. 19

    트리거 출력에서 오류 메시지를 반환하는 방법은 무엇입니까?

  20. 20

    트리거 출력에서 오류 메시지를 반환하는 방법은 무엇입니까?

  21. 21

    Java 계산기로 잘못된 입력에 대한 오류 메시지 생성

  22. 22

    지시문을 사용하여 양식의 여러 입력 필드에서 $ 오류 메시지 제거

  23. 23

    Paramiko는 출력과 오류 메시지를 어떻게 분리합니까?

  24. 24

    Vaadin 14-다른 입력 필드와 마찬가지로 파일 업로드시 오류 표시

  25. 25

    jQuery는 입력에서 게시 오류 메시지를 확인합니다.

  26. 26

    빈 이메일 입력 필드를 비워 둘 때 오류 발생

  27. 27

    증분 while 루프를 기반으로 백분율을 결정할 때 논리 오류로 인한 출력 오류

  28. 28

    필드가 TypeError를 반환하는 경우 JSON 구문 분석 오류 무시

  29. 29

    필드 필수 오류 메시지를 정의 할 위치

뜨겁다태그

보관