class ShiroConfigurationConfig {

    public static ShiroConfiguration getDefault() {
        final List<Main> mains = new ArrayList<>();
        mains.add(initMain("tokenAuthRealm", "org.opendaylight.aaa.shiro.realm.TokenAuthRealm"));
        mains.add(initMain("securityManager.realms", "$tokenAuthRealm"));
        mains.add(initMain("authcBasic", "org.opendaylight.aaa.shiro.filters.ODLHttpAuthenticationFilter"));
        mains.add(initMain("accountingListener", "org.opendaylight.aaa.shiro.filters.AuthenticationListener"));
        mains.add(initMain("securityManager.authenticator.authenticationListeners", "$accountingListener"));
        mains.add(initMain("dynamicAuthorization", "org.opendaylight.aaa.shiro.realm.MDSALDynamicAuthorizationFilter"));

        final List<Urls> urls = new ArrayList<>();
        urls.add(initUrl("/operations/cluster-admin**", "authcBasic, roles[admin]"));
        urls.add(initUrl("/v1/**", "authcBasic, roles[admin]"));
        urls.add(initUrl("/config/aaa*/**", "authcBasic, roles[admin]"));
        urls.add(initUrl("/**", "authcBasic"));

        return new ShiroConfigurationBuilder().setMain(mains).setUrls(urls).build();
    }

    private  ShiroConfigurationConfig();

}