如何使用 scala securesocial 在播放框架中保护 websocket 调用?
def statusfeed() = WebSocket.using[String] { implicit request =>
if (logged in) {
...
else {
}
}
谢谢,
编辑1:
试过这个但没有用,总是得到“未登录”
def statusfeed() = WebSocket.using[String] { implicit request =>
var in = Iteratee.ignore[String]
var out = Enumerator.empty[String]
session.get("userId").map { sessionId =>
//sessionId is now userId in session
//check he is authorise to view page or not
// Ok("user in session")
def getLoadAverage = {
"%1.2f" format
ManagementFactory.getOperatingSystemMXBean.getSystemLoadAverage()
}
in = Iteratee.ignore[String]
out = Enumerator.repeatM {
Promise.timeout(getLoadAverage, 3 seconds)
}
}.getOrElse {
log.info("not logged in")
//any thing that you want when he is not in session
Redirect("/") //NOT IN SESSION REDIRECT TO LOGIN PAGE
}
(in, out)
}
编辑 2:用 SecureSocial.USER_KEY 替换 userId 也不起作用