2012-01-06 10 views
7

अपाचे शिरो का उपयोग करते समय मैं कैशमेनगर गुण कैसे सेट कर सकता हूं। डिबगिंग पर, मैं जानकारी की तरह हो रही है,कैशमेनगर गुण सेट किए गए हैं- अपाचे शिरो

80104 [[email protected]] INFO org.apache.shiro.realm.AuthorizingRealm - No cache or cacheManager properties have been set. Authorization cache cannot be obtained. 

मैं JSF2 और Google क्लाउड SQL का उपयोग कर रहा हूँ।

उत्तर

4

यदि शिरो की आईएनआई कॉन्फ़िगरेशन का उपयोग करते हैं, तो आप सुरक्षा प्रबंधक की कैश प्रबंधक संपत्ति को किसी भी अन्य बीन संपत्ति की तरह सेट करते हैं। उदाहरण के लिए:

[main] 

cacheManager = com.something.impl.SomeCacheManager 
# config cacheManager as necessary, e.g. 
# cacheManager.foo = bar 

securityManager.cacheManager = $cacheManager 

आप आउट-ऑफ-द-बॉक्स EhCacheManager का उपयोग करें या एक कस्टम कैश समर्थन की दुकान का उपयोग करने के CacheManager और Cache इंटरफेस अपने आप को लागू कर सकते हैं (उदाहरण के लिए Memcache, जुटना, GigaSpaces, किसी भी आधुनिक NoSQL कुंजी/वैल्यू स्टोर, इत्यादि ...)

1

ऐसा लगता है जैसे एह कैशमेनर शिरो-कोर 1.2.1 (मेवेन पैकेज में वैसे भी) का हिस्सा नहीं है। मैं shiro.ini में मेरी [मुख्य] ​​अनुभाग के लिए निम्न जोड़कर समस्या हल:

[main] 
builtInCacheManager = org.apache.shiro.cache.MemoryConstrainedCacheManager 
securityManager.cacheManager = $builtInCacheManager 
+3

हाय एलन - हम सब Shiro उन पर ehcache निर्भरता के लिए मजबूर नहीं कर सकते, ehcache सहायता के रूप में एक [प्लगइन] प्रदान की जाती है तो (http://search.maven.org/#search%7Cga%7C1%7Cshiro-ehcache)। बस इसे अपने रनटाइम क्लासपाथ में जोड़ें और आप तुरंत EhCacheManager का उपयोग कर सकते हैं। HTH! –

+1

आह, उसे नहीं पता था। हालांकि जब आपने उल्लेख किया कि यह बॉक्स ऑफ-द-बॉक्स था जिसे इसे मूल पुस्तकालय में शामिल किया गया था। धन्यवाद! –

संबंधित मुद्दे