Java用户名和密码始终返回true

Pet*_*r F 0 java arrays passwords char username

我正在开发一个项目,并一直试图篡改用户名/密码.您可以在下面看到代码.每当我点击登录按钮时,用户名变为bobsyouruncle,向我表明它在方法中找到了"true"值.问题在于,无论输入如何,它总是如此.这更令人困惑,因为如果我将下面的"return true"更改为"return false",那么我仍然会得到bobsyouruncle.有什么建议?

    loginButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            Boolean authenticated = AuthenticateCredentials(usernameField.getText(),passwordField.getPassword());

            if(authenticated = true){
                usernameField.setText("Bobsyouruncle");
            } else {
                System.exit(0);
            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

以下是访问的方法.

private Boolean AuthenticateCredentials(String user, char[] pass) {
    //This is only a placeholder.
    String theCorrectAnswer = "42";
    String theCorrectUser = "FPrefect";
    char[] passcode = theCorrectAnswer.toCharArray();
    optionPanel.showInternalMessageDialog(securityPanel,"Eggs are not supposed to be green.");
    if (user.equals(theCorrectUser) && Arrays.equals(passcode,pass)) {
        return true;    
    } else {
        return false;
    }

}
Run Code Online (Sandbox Code Playgroud)

如果有人想告诉我,我已经搞砸了创建一个安全的用户名和密码来节省我的麻烦,那也是花花公子.

rge*_*man 10

您正在分配=,但此处需要的比较运算符是==.但是,authenticated已经是一个boolean,所以只需使用:

if(authenticated){
Run Code Online (Sandbox Code Playgroud)