我已经在我的Playframework项目中添加了keycloak身份验证,但仅针对一项Action实施。我正在尝试创建一个自定义Action类,该类将验证JWT,并将其注入所有类中。
我当前的端点代码:
BeginAuthentication
我要创建的自定义actionimpl:
val configData: Config = config.get[Config]("auth.keycloak")
val keycloakConfig = KeycloakConfig(configData)
val kcContext = KeycloakHelperContext(keycloakConfig)
def getUserProps() = Action {
implicit request: Request[AnyContent] =>
val user = kcContext.dpKcAuthentication.validateJWT
Ok(write(Map("user" → user))).as(JSON)
}
它说:
方法'invokeBlock'不会覆盖任何内容
当我将请求传递给validateJWT方法时发生。我不在控制器中执行此操作,因为我只是简单地说请求是隐式的,并且已将其传递到那里。
对于当前的实现,我需要使invokeBlock内部的请求隐式或找到一种将其传递给validateJWT方法的方法。