0

以下はhttp://www.playframework.com/documentation/1.2.5/secureにあるコードです。

package controllers;

public class Security extends Secure.Security {

static boolean authenticate(String username, String password) {

     User user = User.find("byEmail", username).first();
     return user != null && user.password.equals(password);
   }
}

ユーザー名とパスワードをコントローラー自体にハードコードしたいと思います。それらのログイン資格情報のみを受け入れるようにします。

どうすればよいかわかりませんが、次のようにする必要があります。

package controllers;

public class Security extends Secure.Security {

static boolean authenticate(String username, String password) {

     if (username=="abc@abc.com" && password=="abc123")
     return....
     .......
   }
}
4

1 に答える 1

1

あなたは正しい軌道に乗っています。ただし、いくつかの注意事項:

  • 演算子Stringを使用して等しいかどうかをチェックしないでください。代わりに==使用してください。String#equals()
  • equals を使用する場合は、リテラルでメソッドを呼び出しますString。これらは決してsnullを排除するのに役立ちませんNullPointerException
  • パスワードとユーザー名を平文の文字列としてハードコーディングするのは危険です。あまり手間をかけずにメモリから読み取ることができます。
  • はブール値であるためusername=="abc@abc.com" && password=="abc123"、単純にその結果を返すことができます。

セキュリティの問題に関するポイント 3 を無視すると、メソッドは次のようになります。

static boolean authenticate(String username, String password) {
    return "abc@abc.com".equals(username) && "abc123".equals(password);
}
于 2013-09-10T06:50:44.557 に答える