ellou'
у меня есть общий метод Play WebSocket, который работает, как и ожидалось, но мне нужно аутентифицировать пользователя. К сожалению, при попытке даже самого простого способа идентифицировать пользователя в методе:
public class Application extends Controller {
public static WebSocket<JsonNode> connect() {
return new WebSocket<JsonNode>() {
@Override
public void onReady(final WebSocket.In<JsonNode> in, final WebSocket.Out<JsonNode> out) {
User logged = User.findByUsername(Http.Context.current().request().username());
//...
}
};
}
}
я получаю сообщение об ошибке :
java.lang.RuntimeException: There is no HTTP Context available from here.
. Мой текущий обходной путь заключается в передаче случайного уникального идентификатора для просмотра и сохранения его в модели пользователя, чем я могу подключиться к сокету из просмотреть и найти пользователя с заданным идентификатором, но это не идеально, так как может быть только одно соединение WebSocket для каждого пользователя, а также не предотвращает подделку.
Как аутентифицировать пользователя и предотвратить спуфинг?