Я использую Silhouette для управления аутентификацией в моем приложении Play. Регистрация, вход и авторизация работают нормально. Однако при попытке отменить (= удалить) учетную запись пользователя удаление соответствующей информации об аутентификации завершается неудачей.
В частности, следующая строка вызывает исключение:
authInfoRepository.remove(LoginInfo(credentialsProvider.id, username))
(authInfoRepository
- это введенный AuthInfoRepository
, который настроен на DelegableAuthInfoRepository
)
Исключение:
com.mohiva.play.silhouette.api.exceptions.ConfigurationException: Cannot remove auth info of type: class scala.runtime.Nothing$; Please configure the DAO for this type
at com.mohiva.play.silhouette.persistence.repositories.DelegableAuthInfoRepository.remove(DelegableAuthInfoRepository.scala:115)
[...]
Глядя на рассматриваемый метод, он ожидает неявный параметр implicit tag: ClassTag[T]
. Это как-то в конечном итоге получается Nothing
, что выглядит неправильно в моих глазах, но я не до конца понимаю, что происходит или что ожидается.
- Как правильно назвать
AuthInfoRepository#remove
? Нужно ли вручную помещать объект ClassTag
в правильный контекст, чтобы избежать вывода Nothing
?
- Почему неявный параметр
ClassTag
вообще актуален?