Хорошо, я официально смущен.Apache Shiro: ClassCastException on Realm
В Сиро у меня есть собственное царство (DatastoreRealm), которое расширяет полномочия AuthorizingRealm. В моем DatastoreRealm у меня есть метод «clearCachedAuthorizationInfo», который позволяет мне очищать разрешения пользователей и т. Д. (А затем повторно проверять), когда эти разрешения изменяются «на лету».
Чтобы получить этот метод, я должен получить доступ к объекту DatastoreRealm. Я делаю это следующим образом ...
private static Realm lookupRealm(String realmName) {
SecurityManager securityManager = SecurityUtils.getSecurityManager();
RealmSecurityManager realmSecurityManager = (RealmSecurityManager) securityManager;
Collection<Realm> realms = realmSecurityManager.getRealms();
for (Realm realm : realms) {
if (realm.getName().equalsIgnoreCase(realmName)) {
log.info("look up realm name is : " + realm.getName());
return realm;
}
}
return null; }
Это, кажется, работает хорошо. Он возвращает мне объект DatastoreRealm.
Хотя, когда я называю этот метод, я вынужден сделать следующее ...
DatastoreRealm dsRealm = (DatastoreRealm) lookupRealm("rfRealm");
Который бросает "ClassCastException" рассказывал мне ...
rf.gae.DatastoreRealm cannot be cast to rf.gae.DatastoreRealm
Как/Почему это происходит???
Если я не отбрасываю, а просто использовать «Realm» объект, «clearCachedAuthorizationInfo» не доступен для меня!
Заранее благодарим за помощь!
Старая тема, но: Не могли бы вы быть добрыми и поделиться, какие рамки вы использовали? И как вы отключили «горячую перезагрузку»? – PastorPL