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。这些永远不会null帮助消除NullPointerExceptions。
  • 将密码和用户名硬编码为纯字符串可能很危险:它们可以毫不费力地从内存中读取。
  • 因为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 回答