001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, 013 * software distributed under the License is distributed on an 014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 015 * KIND, either express or implied. See the License for the 016 * specific language governing permissions and limitations 017 * under the License. 018 * 019 */ 020 package org.apache.directory.server.core.partition; 021 022 023 import java.util.Collection; 024 import java.util.Collections; 025 import java.util.HashSet; 026 027 import org.apache.directory.server.core.interceptor.Interceptor; 028 029 030 /** 031 * Constants used to determine what kinds of {@link Interceptor}s need to be 032 * bypassed while performing operations within other Interceptors. 033 * 034 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a> 035 * @version $Rev$, $Date$ 036 */ 037 public class ByPassConstants 038 { 039 /** 040 * safe to use set of bypass instructions to lookup raw entries 041 */ 042 public final static Collection<String> LOOKUP_BYPASS; 043 044 /** 045 * safe to use set of bypass instructions to lookup raw entries while 046 * also avoiding hit on collective attributes {@link Interceptor}: used 047 * by collective attributes interceptor. 048 */ 049 public static final Collection<String> LOOKUP_COLLECTIVE_BYPASS; 050 051 /** 052 * bypass instructions used by ExceptionInterceptor 053 */ 054 public final static Collection<String> HAS_ENTRY_BYPASS; 055 056 /** 057 * safe to use set of bypass instructions to getMatchedDn 058 */ 059 public static final Collection<String> GETMATCHEDDN_BYPASS; 060 061 /** 062 * safe to use set of bypass instructions to lookup raw entries excluding operational attributes 063 */ 064 public static final Collection<String> LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS; 065 066 public static final Collection<String> GET_ROOT_DSE_BYPASS; 067 068 /** 069 * Bypass String to use when ALL interceptors should be skipped 070 */ 071 public static final String BYPASS_ALL = "*"; 072 073 /** 074 * Bypass String to use when ALL interceptors should be skipped 075 */ 076 public static final Collection<String> BYPASS_ALL_COLLECTION = Collections.singleton( BYPASS_ALL ); 077 078 /** Bypass for when we modify schema attributes */ 079 public static final Collection<String> SCHEMA_MODIFICATION_ATTRIBUTES_UPDATE_BYPASS; 080 081 static 082 { 083 Collection<String> c = new HashSet<String>(); 084 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 085 c.add( "org.apache.directory.server.core.authn.AuthenticationInterceptor" ); 086 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 087 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 088 c.add( "org.apache.directory.server.core.operational.OperationalAttributeInterceptor" ); 089 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 090 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 091 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 092 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 093 LOOKUP_BYPASS = Collections.unmodifiableCollection( c ); 094 095 c = new HashSet<String>(); 096 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 097 c.add( "org.apache.directory.server.core.authn.AuthenticationInterceptor" ); 098 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 099 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 100 c.add( "org.apache.directory.server.core.exception.ExceptionInterceptor" ); 101 c.add( "org.apache.directory.server.core.operational.OperationalAttributeInterceptor" ); 102 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 103 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 104 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 105 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 106 HAS_ENTRY_BYPASS = Collections.unmodifiableCollection( c ); 107 108 c = new HashSet<String>(); 109 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 110 c.add( "org.apache.directory.server.core.authn.AuthenticationInterceptor" ); 111 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 112 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 113 c.add( "org.apache.directory.server.core.collective.CollectiveAttributeInterceptor" ); 114 c.add( "org.apache.directory.server.core.operational.OperationalAttributeInterceptor" ); 115 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 116 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 117 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 118 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 119 LOOKUP_COLLECTIVE_BYPASS = Collections.unmodifiableCollection( c ); 120 121 c = new HashSet<String>(); 122 c.add( "org.apache.directory.server.core.authn.AuthenticationInterceptor" ); 123 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 124 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 125 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 126 c.add( "org.apache.directory.server.core.operational.OperationalAttributeInterceptor" ); 127 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 128 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 129 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 130 GETMATCHEDDN_BYPASS = Collections.unmodifiableCollection( c ); 131 132 c = new HashSet<String>(); 133 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 134 c.add( "org.apache.directory.server.core.authn.AuthenticationInterceptor" ); 135 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 136 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 137 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 138 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 139 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 140 c.add( "org.apache.directory.server.core.trigger.TriggerInterceptor" ); 141 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 142 LOOKUP_EXCLUDING_OPR_ATTRS_BYPASS = Collections.unmodifiableCollection( c ); 143 144 c = new HashSet<String>(); 145 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 146 c.add( "org.apache.directory.server.core.changelog.ChangeLogInterceptor" ); 147 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 148 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 149 c.add( "org.apache.directory.server.core.exception.ExceptionInterceptor" ); 150 c.add( "org.apache.directory.server.core.operational.OperationalAttributeInterceptor" ); 151 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 152 c.add( "org.apache.directory.server.core.subtree.SubentryInterceptor" ); 153 c.add( "org.apache.directory.server.core.collective.CollectiveAttributeInterceptor" ); 154 c.add( "org.apache.directory.server.core.event.EventInterceptor" ); 155 c.add( "org.apache.directory.server.core.trigger.TriggerInterceptor" ); 156 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 157 GET_ROOT_DSE_BYPASS = Collections.unmodifiableCollection( c ); 158 159 160 c = new HashSet<String>(); 161 c.add( "org.apache.directory.server.core.normalization.NormalizationInterceptor" ); 162 c.add( "org.apache.directory.server.core.authz.AciAuthorizationInterceptor" ); 163 c.add( "org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor" ); 164 c.add( "org.apache.directory.server.core.exception.ExceptionInterceptor" ); 165 c.add( "org.apache.directory.server.core.schema.SchemaInterceptor" ); 166 c.add( "org.apache.directory.server.core.collective.CollectiveAttributeInterceptor" ); 167 c.add( "org.apache.directory.server.core.journal.JournalInterceptor" ); 168 SCHEMA_MODIFICATION_ATTRIBUTES_UPDATE_BYPASS = Collections.unmodifiableCollection( c ); 169 } 170 }