Scala 由于隐式参数错误,删除身份验证信息失败
我正在使用剪影管理我的Play应用程序中的身份验证。注册、登录和授权工作正常。但是,当尝试注销(=删除)用户帐户时,删除相应的身份验证信息失败 特别是,以下行引发异常:Scala 由于隐式参数错误,删除身份验证信息失败,scala,playframework,silhouette,Scala,Playframework,Silhouette,我正在使用剪影管理我的Play应用程序中的身份验证。注册、登录和授权工作正常。但是,当尝试注销(=删除)用户帐户时,删除相应的身份验证信息失败 特别是,以下行引发异常: authinformepository.remove(LoginInfo(credentialsProvider.id,用户名)) (authinformepository是一个注入的authinformepository,配置为一个delegableauthinformepository) 例外情况: 查看所讨论的方法,它需
authinformepository.remove(LoginInfo(credentialsProvider.id,用户名))
(authinformepository
是一个注入的authinformepository
,配置为一个delegableauthinformepository
)
例外情况:
查看所讨论的方法,它需要一个隐式参数隐式标记:ClassTag[T]
。那一个在我看来似乎是错误的,但我不完全理解正在发生什么,或者预期会发生什么
- 应该如何正确调用
?我是否需要手动将authinformepository#remove
对象放入正确的上下文中,以避免推断出ClassTag
任何内容
- 为什么隐式
参数甚至是相关的ClassTag
ClassTag
参数甚至是相关的
ClassTag
是相关的,因为remove
需要这样的隐式:
我是否需要手动将类标记
对象放入正确的上下文中以
避免推断出任何内容
我猜反之亦然,您应该指定T
(如果没有这样的指定,T
现在被推断为Nothing
),并将找到适当的隐式表达式
请尝试以下选项之一:
authInfoRepository.remove[CasInfo](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OAuth1Info](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OAuth2Info](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OpenIDInfo](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[PasswordInfo](LoginInfo(credentialsProvider.id, username))
为什么隐式ClassTag
参数甚至是相关的
ClassTag
是相关的,因为remove
需要这样的隐式:
我是否需要手动将类标记
对象放入正确的上下文中以
避免推断出任何内容
我猜反之亦然,您应该指定T
(如果没有这样的指定,T
现在被推断为Nothing
),并将找到适当的隐式表达式
请尝试以下选项之一:
authInfoRepository.remove[CasInfo](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OAuth1Info](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OAuth2Info](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[OpenIDInfo](LoginInfo(credentialsProvider.id, username))
authInfoRepository.remove[PasswordInfo](LoginInfo(credentialsProvider.id, username))
啊,现在我明白了:类型是必需的,因为支持不同的身份验证方法。谢谢啊,现在我明白了:类型是必需的,因为支持不同的身份验证方法。谢谢