【问题标题】:S.redirectTo() not working in scala liftwebS.redirectTo() 在 scala liftweb 中不起作用
【发布时间】:2014-07-16 21:16:33
【问题描述】:

我在 sn-p SignInController 中有以下代码,应该重定向到新视图。但它只显示“在此服务器上未找到请求的 URL /home”

import code.model.User

import net.liftweb.mapper.By
import net.liftweb.common.Loggable
import scala.xml.NodeSeq
import net.liftweb.common.Full
import net.liftweb.http.S
import net.liftweb.util.PassThru
import net.liftweb._
import http._
import util.Helpers._

object SignInController{

  def render = {
    var username = ""
    var password=""
     def process() {
      val userList: List[User] = User.findAll(By(User.username, username))
      for( u <-  userList )
      {
        if(u.password.equals(password))
        {
          S.redirectTo("/home")
        }
      }

    }
    "name=username" #> SHtml.text(username, username = _) &
      "name=password" #> SHtml.password(password, password = _) &
      // when the form is submitted, process the variable
      "type=submit" #> SHtml.onSubmitUnit(process)
  }
}

我不知道如何从 scala liftweb 中的 sn-p 重定向到视图页面

【问题讨论】:

    标签: lift


    【解决方案1】:

    您的菜单中是否定义了“/home”?如果没有,它将无法访问,我相信您会收到该消息。

    关于一个不相关但可能更重要的说明:您是否知道这种密码管理和身份验证方法存在重大问题?

    【讨论】:

    • No '/home' 未在我的菜单中定义。我只是在菜单中定义了它,它就起作用了。谢谢 另外我不知道有什么重大问题,请您指出这些问题....
    • 您以明文形式存储密码,任何用户都可以使用任何其他用户的密码登录。另外,是什么阻止了用户直接访问 /home?您可能应该只使用基于 ProtoUser 的模板之一并从那里开始 - assembla.com/spaces/liftweb/wiki/Getting_Started(现在也有 2.6 个模板,但该页面上没有提及)。
    • 嗯,我收回第二部分。错过了用户名的限制。无论如何,以明文形式存储密码并不好。我相信 2.6 版本的 ProtoUser 使用 bcrypt 来存储密码值的哈希值,这是一个很好的做法。干杯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2016-12-22
    • 2014-06-07
    相关资源
    最近更新 更多