1

私はJavaMailAPIを使用しています。

PasswordAuthentication valid = new PasswordAuthentication(txtEmail.getText(), 
                                                         txtPassword.getText());

if (valid != null) {
    lblInvalid.setText("Correct information!");
} else {
    lblInvalid.setText("Invalid username or password!");
}

私がしたいことは、ユーザーにGmailのユーザー名とパスワードを使用してログインしてもらいたいことです。そのメールのユーザー名とパスワードが実際のGmailログイン情報であるかどうかを確認したいと思います。メールアドレスとパスワードが入力されているかどうかを確認するには、ユーザーのGmailアカウントを使用します。

4

3 に答える 3

2

Javaでは、実行してnew Anything()もnullが返されることはありません。

また、このクラスは、JDKの他の部分で使用されるプレースホルダーデータ構造にすぎないようです。本質的に検証は行いません。

メールアドレスの検証は通常、正規表現を使用して行われ、シンプルに保たれます。次に、ユーザーに確認メッセージを送信して、メールアドレスが重要かどうかを確認する必要があります。

パスワードは、正規表現を使用して正しい形式で検証することもできます。

アップデート

送信しようとしているエラーメッセージを詳しく見ると、認証を自分で処理したいようです。これを行う方法はたくさんありますが、非常に単純なプロトタイプのみのソリューションは次のようなものです。

// create a static mapping of user/passwords:
private static Map<String, String> logins = new HashMap<String, String>();

次に、ハンドラーで:

if (txtPassword.getText().equals(logins.get(txtEmail.getText()))) {
    lblInvalid.setText("Correct information!");
} else {
    lblInvalid.setText("Invalid username or password!");
}

本番環境で使用するものについては、SpringSecurityを強くお勧めします

于 2012-10-12T23:56:30.090 に答える
1

メールアドレスを検証するには、このリンクを参照してください

http://www.mkyong.com/regular-expressions/how-to-validate-email-address-with-regular-expression/

パスワードを検証する場合:データベースまたは他のセキュリティフレームワークからユーザーの保存されたパスワードを取得し、ユーザーが行った入力に対して検証する必要があります。

于 2012-10-13T01:30:22.890 に答える
0

これはかなり大きなトピックです。

認証、承認、検証は3つの異なるものです(ただし、ほとんど関連しています)。

初心者で、ハードコードされたクレデンシャルを使用してモック認証を試しているだけの場合は、次のようなコードを使用してコードを少し改善できます。

public class Authenticator {

public boolean authenticateWithCredentials(String email, String password) {

    boolean areValidCredentials = false;

    //Validate credentials here with database or hardcoded
    if(email.equals("my_email@emailprovider.com") && password.equals("mypassword")) {
        areValidCredentials = true;
    }

    return areValidCredentials;
}

}

このクラスのインスタンスを1つだけ使用する場合は、シングルトンパターンを使用できます。

public class Authenticator {

//Singleton pattern
private static Authenticator instance;

public static Authenticator getInstance() {

    if(instance == null) {
        instance = new Authenticator();
    }

    return instance;
}

private Authenticator() {
    //Block creation of Authenticator instances
}

public boolean authenticateWithCredentials(String email, String password) {

    boolean areValidCredentials = false;

    //Validate credentials here with database or hardcoded
    if(email.equals("my_email@emailprovider.com") && password.equals("mypassword")) {
        areValidCredentials = true;
    }

    return areValidCredentials;
}

}

于 2012-10-13T00:06:33.557 に答える