Coverage Report - org.apache.shiro.web.filter.mgt.DefaultFilter
 
Classes in this File Line Coverage Branch Coverage Complexity
DefaultFilter
79%
23/29
75%
3/4
2
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one
 3  
  * or more contributor license agreements.  See the NOTICE file
 4  
  * distributed with this work for additional information
 5  
  * regarding copyright ownership.  The ASF licenses this file
 6  
  * to you under the Apache License, Version 2.0 (the
 7  
  * "License"); you may not use this file except in compliance
 8  
  * with the License.  You may obtain a copy of the License at
 9  
  *
 10  
  *     http://www.apache.org/licenses/LICENSE-2.0
 11  
  *
 12  
  * Unless required by applicable law or agreed to in writing,
 13  
  * software distributed under the License is distributed on an
 14  
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 15  
  * KIND, either express or implied.  See the License for the
 16  
  * specific language governing permissions and limitations
 17  
  * under the License.
 18  
  */
 19  
 package org.apache.shiro.web.filter.mgt;
 20  
 
 21  
 import org.apache.shiro.util.ClassUtils;
 22  
 import org.apache.shiro.web.filter.authc.*;
 23  
 import org.apache.shiro.web.filter.authz.*;
 24  
 import org.apache.shiro.web.filter.session.NoSessionCreationFilter;
 25  
 
 26  
 import javax.servlet.Filter;
 27  
 import javax.servlet.FilterConfig;
 28  
 import javax.servlet.ServletException;
 29  
 import java.util.LinkedHashMap;
 30  
 import java.util.Map;
 31  
 
 32  
 /**
 33  
  * Enum representing all of the default Shiro Filter instances available to web applications.  Each filter instance is
 34  
  * typically accessible in configuration the {@link #name() name} of the enum constant.
 35  
  *
 36  
  * @since 1.0
 37  
  */
 38  118
 public enum DefaultFilter {
 39  
 
 40  2
     anon(AnonymousFilter.class),
 41  2
     authc(FormAuthenticationFilter.class),
 42  2
     authcBasic(BasicHttpAuthenticationFilter.class),
 43  2
     logout(LogoutFilter.class),
 44  2
     noSessionCreation(NoSessionCreationFilter.class),
 45  2
     perms(PermissionsAuthorizationFilter.class),
 46  2
     port(PortFilter.class),
 47  2
     rest(HttpMethodPermissionFilter.class),
 48  2
     roles(RolesAuthorizationFilter.class),
 49  2
     ssl(SslFilter.class),
 50  2
     user(UserFilter.class);
 51  
 
 52  
     private final Class<? extends Filter> filterClass;
 53  
 
 54  22
     private DefaultFilter(Class<? extends Filter> filterClass) {
 55  22
         this.filterClass = filterClass;
 56  22
     }
 57  
 
 58  
     public Filter newInstance() {
 59  1034
         return (Filter) ClassUtils.newInstance(this.filterClass);
 60  
     }
 61  
 
 62  
     public Class<? extends Filter> getFilterClass() {
 63  32
         return this.filterClass;
 64  
     }
 65  
 
 66  
     public static Map<String, Filter> createInstanceMap(FilterConfig config) {
 67  12
         Map<String, Filter> filters = new LinkedHashMap<String, Filter>(values().length);
 68  144
         for (DefaultFilter defaultFilter : values()) {
 69  132
             Filter filter = defaultFilter.newInstance();
 70  132
             if (config != null) {
 71  
                 try {
 72  0
                     filter.init(config);
 73  0
                 } catch (ServletException e) {
 74  0
                     String msg = "Unable to correctly init default filter instance of type " +
 75  0
                             filter.getClass().getName();
 76  0
                     throw new IllegalStateException(msg, e);
 77  0
                 }
 78  
             }
 79  132
             filters.put(defaultFilter.name(), filter);
 80  
         }
 81  12
         return filters;
 82  
     }
 83  
 }