001 /* 002 @license.text@ 003 */ 004 package biz.hammurapi.authorization; 005 006 import java.security.AccessControlException; 007 import java.util.Collection; 008 009 import org.w3c.dom.Node; 010 011 /** 012 * Interface for authorization checks. 013 * @author Pavel Vlasov 014 * @revision $Revision$ 015 */ 016 public interface AuthorizationProvider { 017 018 /** 019 * @param clazz 020 * @param action 021 * @return 022 */ 023 boolean hasClassPermission(Class clazz, String action); 024 025 /** 026 * @param clazz 027 * @param action 028 */ 029 void checkClassPermission(Class clazz, String action) throws AccessControlException; 030 031 /** 032 * @param instance 033 * @param action 034 * @return 035 */ 036 boolean hasInstancePermission(Object instance, String action); 037 038 /** 039 * @param instance 040 * @param action 041 */ 042 void checkInstancePermission(Object instance, String action) throws AccessControlException; 043 044 /** 045 * @param className 046 * @param action 047 * @return 048 */ 049 boolean hasClassPermission(String className, String action); 050 051 /** 052 * @param className 053 * @param action 054 * @return 055 */ 056 boolean hasInstancePermission(Node objectNode, String className, String action); 057 058 /** 059 * @param role 060 * @return 061 */ 062 boolean isUserInRole(String role); 063 064 /** 065 * @return 066 */ 067 String getUserName(); 068 069 /** 070 * @return Collection of permissions 071 */ 072 Collection getPermissions(); 073 }