Typically, you'd set the desired cachemanager in the realm itself, e.g.:

public class UserRealm extends AuthorizingRealm {
    public UserRealm(...) {
        super(new MemoryConstrainedCacheManager());


Kalle

On Wed, Dec 21, 2016 at 12:47 AM, Charlouze <m...@charlouze.com> wrote:

> 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);
>     }
> }
>

Reply via email to