【问题标题】:Akka http basic authentication type mismatchAkka http 基本认证类型不匹配
【发布时间】:2017-11-04 02:09:50
【问题描述】:

我正在尝试通过执行以下操作向使用 akka http 10.0.10 的路由添加基本身份验证:

def myUserPassAuthenticator(credentials: Credentials): Option[String] =
  credentials match {
    case p @ Credentials.Provided(id) if p.verify("p4ssw0rd") => Some(id)
    case _ => None
  }

val routes: Route =
  pathPrefix("foo") {
    authenticateBasic(realm = "secure site", myUserPassAuthenticator) { user =>
      path("bar") {
        pathEndOrSingleSlash {
          complete("bla")
        }
      }
    }
  }

这可以编译,但 IDEA 向我显示以下错误:

Type mismatch, expected L => server.Route, actual String => server.Route

另外加载 localhost:9000/foo/bar 会返回 404。谁能帮我理解这是为什么以及如何正确构建这些指令?

【问题讨论】:

  • 你导入了import akka.http.scaladsl.server.Directives._??好像还可以
  • 是的,我确实导入了 akka.http.scaladsl.server.Directives._

标签: scala akka-http


【解决方案1】:

就 akka http 而言,上面的片段是正确的,现在可以正常工作了。我的问题来自于指令层次结构中较高层的手卷 CORS 指令,该指令未正确实现。

奇怪的是,IDEA 仍然在抱怨类型不匹配。

【讨论】:

    猜你喜欢
    • 2021-05-13
    • 2018-02-16
    • 2014-01-08
    • 1970-01-01
    • 2019-05-23
    • 2016-07-27
    • 2012-01-06
    • 1970-01-01
    • 2012-01-02
    相关资源
    最近更新 更多