Базовая аутентификация в игровой среде - PullRequest
0 голосов
/ 10 июля 2019

Как реализовать базовую аутентификацию для веб-сокетов с использованием Play Framework.

Я создаю веб-сокет с использованием Play Framework.Я хотел бы сделать базовую аутентификацию и отправить 401, если аутентификация не удалась.Ниже приведен мой код, и я не могу отправить «{code = 401, message = unauthorized access}» в качестве ответа

def ChatServer(): WebSocket = WebSocket.accept[String, String] { request =>
    if (Util.doBasicAuthentication(request.headers)) {
      ActorFlow.actorRef { out =>
        ChatActor.props(out)
      }
    } else throw new RuntimeException("Unauthorized Access")
  }

При сбое аутентификации я не могу отправить ответ обратно как «unauthorized».доступ "вместо этого я заканчиваю с исключениями

1 Ответ

0 голосов
/ 10 июля 2019

Как описано в документации Play , используйте WebSocket.acceptOrResult:

def socket = WebSocket.acceptOrResult[String, String] { request =>
  Future.successful {
    if (Util.doBasicAuthentication(request.headers)) {
      Right(ActorFlow.actorRef { out =>
        ChatActor.props(out)
      })
    } else {
      Left(Unauthorized)
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...