如何在安全模块Play 1.2.5中硬编码用户名和密码

时间:2013-09-10 06:32:11

标签: java security playframework

以下是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....
     .......
   }
}

1 个答案:

答案 0 :(得分:1)

你走在正确的轨道上。但是,有些注意事项:

  • 请勿使用String运算符检查==是否相等。请改用String#equals()
  • 使用equals时,请调用文字String上的方法。这些永远不会null,有助于消除NullPointerException
  • 将密码和用户名硬编码为普通字符串可能很危险:可以毫不费力地从内存中读取它们。
  • 因为username=="abc@abc.com" && password=="abc123"是一个布尔值,所以您只需返回该结果。

忽略关于安全问题的第3点,您的方法可能如下所示:

static boolean authenticate(String username, String password) {
    return "abc@abc.com".equals(username) && "abc123".equals(password);
}