Uygulamamın herhangi bir bölümünde Shiro çerçevesinde cacheManager nesnesine nasıl başvuru yapabilirim? Örneğin, bir kullanıcının kaldırılması sırasında önbelleğe alınmış eski kullanıcı verilerini kaldırmak veya izinlerini güncellemek istiyorum. Bu sınıf önbelleği kullanan tek yer ise Şu anda bu aradacacheManager'ı shiro çerçevesinden, uygulamanın herhangi bir bölümünde nasıl edinebilirim
public void cleanUserCache(final String userName) {
final EmbeddedCacheManager embeddedCacheManager = securityRealmsProducer.getEmbeddedCacheManger();
final Cache<Object, Object> authenticationCache = embeddedCacheManager.getCache("JPA-Auth-Realm.authenticationCache");
final Cache<Object, Object> authrizationCache = embeddedCacheManager.getCache("JPA-Auth-Realm.authorizationCache");
final Object userAuthenticationInfo = authenticationCache.get(userName);
if (userAuthenticationInfo != null) {
authenticationCache.remove(userName);
final SimpleAuthenticationInfo principle = (SimpleAuthenticationInfo) userAuthenticationInfo;
final SimplePrincipalCollection simple = (SimplePrincipalCollection) principle.getPrincipals();
authorizationCache.remove(simple);
}
}
Yaptıklarınızla ilgili sorun nedir? Ayrıca, Singleton modeline baktın mı? Bu sorun ne için olduğu oldukça fazla! – JoeG
Tekil desenli modele dikkat etmelisiniz. Tembelleşirseniz, başlatma ile eşzamanlılık sorunlarına karşı hassassınız. – Kurtymckurt