问题标签 [silhouette]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18 浏览

playframework-2.6 - 播放未将 AuthenticatorResult 识别为结果

在我的代码中,我返回AuthenticatorResultembed. CookieAuthenticatorService但我收到编译错误

Error:(270, 27) type mismatch; found : scala.concurrent.Future[com.mohiva.play.silhouette.api.services.AuthenticatorResult] required: play.api.mvc.Result result

我的代码是

如果我返回Ok而不是返回,则代码有效result

这有效

我已将我的 Action 定义为 def signInUser = silhouette.UserAwareAction.async {..}

我究竟做错了什么?

AuthenticatorResult在这里定义 - http://api.play.silhouette.rocks/5.0.0/com/mohiva/play/silhouette/api/services/AuthenticatorResult.html

CookieAuthenticatorService在这里定义 - http://api.play.silhouette.rocks/5.0.0/com/mohiva/play/silhouette/impl/authenticators/CookieAuthenticatorService.html

0 投票
1 回答
78 浏览

scala - 由于隐式参数错误,删除身份验证信息失败

我正在使用 Silhouette 来管理我的 Play 应用程序中的身份验证。注册,登录和授权工作正常。但是,当尝试注销(= 删除)用户帐户时,删除相应的身份验证信息会失败。

特别是,以下行会引发异常:

authInfoRepository是一个注入的AuthInfoRepository,它被配置为一个DelegableAuthInfoRepository

例外:

查看有问题的方法,它需要一个隐式参数implicit tag: ClassTag[T]。那个最终以某种方式结束Nothing,在我看来这是错误的,但我不完全理解发生了什么,或者预期会发生什么。

  • 应该如何AuthInfoRepository#remove正确称呼?我是否需要手动将ClassTag对象放入正确的上下文以避免Nothing被推断?
  • 为什么隐式ClassTag参数甚至相关?
0 投票
1 回答
217 浏览

playframework-2.6 - 使用 Silhouette 时会话身份验证在 Play 中不起作用

我正在使用Silhouette安全库。我的Play服务器似乎发送了空Session信息作为响应。我究竟做错了什么?

Play's以下是发送响应之前控制台上的打印。

Session(Map(authenticator -> 1-jtwBvA+LsLKE2rnkT/nMH1aQF9xc1twhECrma9mj3NUhUdVDmh/4wxQ2MxDOjcxkvEMTi1k63Dg5ezl+9FzDE3miaM5DbOrhyqAyGu4+30mHHV3QdPKA3IQQx5UdL1Hu85fZRI4f3Ef+q6xAgboDps0uBob5ojzo5Oqy8FNsoexn7Wr9iRyTr5xrMrLvl9GNQa+rA3q8qvW84sJaSei2iydrP2OjUbnnzo+zgrHLB3Bn7KJxOcFH4h9CikZNk/FHbtDm4uxzcK3paK1CuuIWLE8yvcYdavJ+4ejV5IaJ8QesJQRFgBktD9L/A2bc03eaA8wm)))

但是在浏览器窗口中,我注意到该值为空。

在此处输入图像描述

Set-Cookie: PLAY_SESSION=; Max-Age=-86400;

请注意,我的浏览器之前已经有一个来自之前测试运行的 PLAY_SESSION cookie。但是,我希望客户端应用程序(Angular)会用新的 cookie 覆盖旧的 cookie。我对么?

以下是创建、初始化和嵌入会话信息的代码片段

Environment定义为

传递给我的控制器

我创建的是在编译时如下

0 投票
1 回答
139 浏览

jwt - JWT 中的 sharedSecret 是什么

Silhouette中,可以使用以下类创建 JWT 身份验证器

有什么用sharedSecret?它是应用程序在签署 JWT 标头/声明有效负载时使用的内容吗?

0 投票
1 回答
2075 浏览

jwt - 尽管发送了 JWT 令牌,但 JWT 身份验证不起作用

我的 Angular 客户端JWT在标头中发送令牌,但我是401从服务器获取的。我可能做错了什么?

在此处输入图像描述

在此处输入图像描述

我测试了jwtat jwt.io。它显示它对我的密钥无效。

所示的有效载荷jwt.io

0 投票
0 回答
112 浏览

scala - 未找到:控制器上的值以上传文件

用akka流上传文件的实现

https://github.com/playframework/play-scala-fileupload-example/blob/2.5.x/app/controllers/HomeController.scala

但发生编译错误。

未找到值:filePicData,位于控制器支持文件:FileUploadControllerSupport.scala

[控制器:FileUploadController.scala]

[形式; FileUploadForm.scala]

[FileUploadFormSupport.scala]

0 投票
0 回答
154 浏览

scala - 文件大小 = 没有文件 / Ok(s"文件大小 = ${fileOption.getOrElse("没有文件")}")

复制以下源并添加一些行。几乎和源码一样。

https://github.com/playframework/play-scala-fileupload-example/blob/2.5.x/app/controllers/HomeController.scala

但是然后上传一个jpg文件

文件大小 = 没有文件

显示在浏览器上。我找不到我的错误在哪里。也许剪影太复杂了

...出什么问题了?

0 投票
2 回答
843 浏览

scala - 未解决的依赖错误:com.atlassian.jwt#jwt-core;1.6.1:未找到

我在一台新机器上导入了一个现有的工作项目,并试图让它编译。我收到以下错误

我读到这个库用于Silhouette. 我Silhouette在我的项目中使用。

plugins.sbt的是

我注意到 IntelliJ 正在尝试在以下位置找到该库,但它无法找到。

0 投票
1 回答
220 浏览

scala - 带有轮廓的文件上传时缺少参数类型

现在使用剪影实现文件上传。

从原文中得到

https://github.com/playframework/play-scala-fileupload-example/tree/2.5.x

轮廓

https://github.com/mohiva/play-silhouette-seed/tree/4.0.0/app

我想用轮廓修复 def 上传方法以在 fileUpload2.scala.html 中指示身份(用户名),所以添加了以下行;

参考这个链接;

http://grokbase.com/p/gg/play-framework/133pt061br/2-1-0-scala-action-question

但效果不佳。

(FileUploadController.scala)

问题是最后几行;

silhouette.SecuredAction.async { 隐式请求 => Future.successful(Ok(views.html.fileUpload2(request.identity,fileOption)))

编译错误;

缺少参数类型

发生。

0 投票
2 回答
233 浏览

mockito - 在单元测试中传递给控制器​​时,FakeRequest 似乎为 Null

Null Pointer单元测试控制器时出错。问题似乎在一线

我怀疑是因为以前测试的堆栈跟踪指向隐式请求行。但我不知道这可能有什么问题,因为我正在使用 FakeRequestval request = FakeRequest("POST", "/ws/users/signup").withJsonBody(Json.parse("""{"bad": "field"}"""))

以下是我要进行单元测试的控制器片段

我只想测试控制器在收到没有json正文的请求时是否返回错误。因此我不需要Silhouette并且我想模拟它。但我收到空指针错误。

以下是我编写单元测试用例的方式