Я пытаюсь создать веб-приложение в Scala, используя Play Framework .При использовании Play Framework в Java я могу использовать модуль Secure для аутентификации страниц, требующих входа в систему.Это распространенная проблема во многих веб-приложениях, и я хотел бы использовать общее решение для своего веб-приложения.
Я пытался следовать Смешивание контроллеров с использованием черт с примером защищенной черты, но моя черта даже не компилируется, и я не понимаю, в чем дело.
Я создал черту из примера и сохранил ее на mysite\app\Secure.scala
:
package controllers
import play._
import play.mvc._
trait Secure {
self:Controller =>
@Before checkSecurity = {
session("username") match {
case Some(username) => renderArgs += "user" -> User(username)
Continue
case None => Action(Authentication.login)
}
}
def connectedUser = renderArgs("user").get
}
Затем я использую черту Secure в простой mysite\app\MySecretController.scala
:
package controllers
import play._
import play.mvc._
object MySecretController extends Controller with Secure {
def index = <h1>Hello</h1>
}
Но при посещении страницы я получаю ошибку компиляции:
The file /app/Secure.scala could not be compiled. Error raised is : expected
start of definition
в этой строке:
@Before ↓checkSecurity = {
Я также создал простой mysite/app/User
класс:
package controllers
class User (name: String){
}
Любое предложение о том, как я могу решить эту проблему?
ОБНОВЛЕНИЕ
После добавления def
в соответствии с предложением Фелипе.Я получаю еще одну ошибку not found: value User
on:
case Some(username) => renderArgs += "user" -> ↓User(username)