Hello tapestry users,
I wanted to get rid of the log message that says "*No cache or cacheManager
properties have been set. Authorization cache cannot be obtained.*".
I read that shiro offers an implementation of their CacheManager using
EhCache so I tried to set it up.
In order to set the CacheManager I had to override
TapestryRealmSecurityManager with one of my own (see below) using a
ServiceOverride contribution. I don't really like using ServiceOverride as
it feels i'm hacking something. Is there a better way to achieve what I
want tot do ?
Regards,
Charles
import org.apache.shiro.cache.CacheManager;
import org.apache.shiro.mgt.RememberMeManager;
import org.apache.shiro.mgt.SubjectFactory;
import org.apache.shiro.realm.Realm;
import org.tynamo.security.Authenticator;
import org.tynamo.security.services.TapestryRealmSecurityManager;
import java.util.Collection;
public class MySecurityManager extends TapestryRealmSecurityManager {
public MySecurityManager(final Authenticator authenticator, final
SubjectFactory subjectFactory,
final RememberMeManager
rememberMeManager, final Collection<Realm> realms,
final CacheManager cacheManager) {
super(authenticator, subjectFactory, rememberMeManager, realms);
setCacheManager(cacheManager);
}
}