Вы можете реализовать аутентификаторов для аутентификации пользователей. вы могли бы написать свою логику аутентификации в своей реализации аутентификатора.
В игре уже есть встроенный аутентификатор действие, которое мы продолжим, чтобы добавить нашу логику. Мы будем называть это аутентификатором Обеспечено.
import play.*;
import play.mvc.*;
import play.mvc.Http.*;
import models.*;
public class Secured extends Security.Authenticator {
@Override
public String getUsername(Context ctx) {
return ctx.session().get("email");
}
@Override
public Result onUnauthorized(Context ctx) {
return redirect(routes.Application.login());
}
}
Мы реализовали здесь два метода. getUsername используется для получения имени пользователя текущего пользователя. В нашем случае это адрес электронной почты, который мы установили в атрибуте электронной почты в сеансе, когда пользователь вошел в систему. Если этот метод возвращает значение, то аутентификатор считает, что пользователь вошел в систему и позволяет продолжить запрос , Если, однако, метод возвращает null, то аутентификатор заблокирует запрос и вместо этого вызовет onUnathorized, который мы внедрили для перенаправления на наш экран входа. Вы можете реализовать свою собственную бизнес-логику для подтверждения пользователем пользователя.
Теперь давайте использовать этот аутентификатор. В Application.java, добавьте @ Security.Authenticated аннотацию с нашим идентифицирующей к индекса метода:
import play.mvc.Controller;
import play.mvc.Result;
public class Application extends Controller {
@Security.Authenticated(Secured.class)
public static Result index() {
return ok(index.render(
Project.findInvolving(request().username()),
Task.findTodoInvolving(request().username()),
User.find.byId(request().username())
));
}
}
Refs:Play Implementing Authenticator Example
насчет этого? https://www.playframework.com/documentation/2.1.1/JavaGuide4 –
попытайтесь использовать это условие после получения ответа или использовать аннотацию после проверки того, что вы хотите! Я не вижу здесь проблемы –
@AhmadAlsanie, если бы вы могли привести пример того, как я буду использовать аннотацию после выполнения проверки, это именно то, что я ищу для ответа. – Blinky