scala - Scala & Play - 将参数传递给过滤器
问题描述
我有一个过滤器,它应该在结果头中发送一个令牌,这需要在控制器中计算。
class TokenFilter @Inject()(implicit val mat: Materializer,
ec: ExecutionContext, token: String) extends Filter{
def apply(nextFilter: RequestHeader => Future[Result])
(requestHeader: RequestHeader): Future[Result] = {
nextFilter(requestHeader).map { result =>
result.withHeaders("token" -> token)
}}}
控制器如下所示:
def getAll(meta: MetaData): Action[AnyContent] = deadbolt.Restrict(group)(parse.default) { implicit request =>
myService.getAll(meta).map(result => {
implicit val token: String = getToken
val list: Seq[Resp] = result._2.map(exp => Mapper(exp))
Ok(Json.toJson(ListResponse.apply(meta, result._1, list)))
})}
看起来获取令牌的函数工作正常,但过滤器无法访问令牌。有任何想法吗?谢谢
解决方案
推荐阅读
- c# - 使用 IAsyncEnumerable 的深度优先递归
- python - 无法在 macOS Catalina 上使用 Pyinstaller 从 Python 脚本创建可执行文件
- java - Spring Security AuthenticationManager 只检查密码
- python - 用 Python 替换除第一行之外的所有行中的字符串
- d3.js - 带有堆栈的 BarChart 中的输出为空 NaN
- c# - 以通用方式在委托中捕获异常
- sql - 根据 Oracle 中的 id 获取列的 max 和 min()
- c# - 外语语音转文本和文本转语音
- c# - Unity:在 FixedUpdate() 或 Start() 中设置 RigidBody 速度?
- c# - .Net SMTP 客户端无法与 Linux 上的 postfix smtp 服务器一起使用