001    package org.tynamo.security.services;
002    
003    import org.tynamo.security.services.impl.SecurityFilterChain;
004    import org.tynamo.security.shiro.authc.AnonymousFilter;
005    import org.tynamo.security.shiro.authc.BasicHttpAuthenticationFilter;
006    import org.tynamo.security.shiro.authc.FormAuthenticationFilter;
007    import org.tynamo.security.shiro.authc.UserFilter;
008    import org.tynamo.security.shiro.authz.PermissionsAuthorizationFilter;
009    import org.tynamo.security.shiro.authz.RolesAuthorizationFilter;
010    
011    public interface SecurityFilterChainFactory {
012            public SecurityFilterChain.Builder createChain(String path);
013    
014            public String getLogicalUrl(Class pageClass);
015            
016            public AnonymousFilter anon();
017    
018            public UserFilter user();
019    
020            public FormAuthenticationFilter authc();
021    
022            public BasicHttpAuthenticationFilter basic();
023            
024            public RolesAuthorizationFilter roles();
025            
026            public PermissionsAuthorizationFilter perms();
027    }