Я следил за учебником, представляющим платформу Play, но это дает мне ошибку:
Исключение выполнения VerifyError: Ожидание фрейма карты стека в контроллерах методов. Обязательно $Security.authentify(Ljava/lang/String; Ljava/lang/String;) Z при смещении 33
Я не уверен, что я сделал не так. Код, который я использую (фрагменты):
package controllers;
..
@With(Secure.class)
public class Application extends Controller
{
@Before
public static void setConnectedUser()
{
if (Security.isConnected())
{
User user = User.find("byEmail", Security.connected()).first();
user.password = null;
renderArgs.put("user", user);
}
}
...
Для класса Security:
package controllers;
import models.*;
public class Security extends Secure.Security {
static boolean authenticate(String username, String password) {
return User.connect(username, password) != null;
}
}
Я также добавил защищенный модуль к dependencies.yml, который правильно загружается после перезапуска платформы Play. Я добавил безопасную модель к своим маршрутам. Eclipse не дает ошибок; ошибка возникает только во время выполнения. Класс Secure.Security действительно имеет общедоступный статический метод isConnected. Я использую самую последнюю версию для платформы Play (1.2.2).