View Javadoc

    1   /* Copyright 2004, 2005 Acegi Technology Pty Limited
    2    *
    3    * Licensed under the Apache License, Version 2.0 (the "License");
    4    * you may not use this file except in compliance with the License.
    5    * You may obtain a copy of the License at
    6    *
    7    *     http://www.apache.org/licenses/LICENSE-2.0
    8    *
    9    * Unless required by applicable law or agreed to in writing, software
    10   * distributed under the License is distributed on an "AS IS" BASIS,
    11   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12   * See the License for the specific language governing permissions and
    13   * limitations under the License.
    14   */
    15
    16  package org.acegisecurity.taglibs.velocity;
    17
    18  import org.acegisecurity.Authentication;
    19
    20  import org.acegisecurity.acl.AclManager;
    21
    22  import org.acegisecurity.taglibs.authz.AclTag;
    23  import org.acegisecurity.taglibs.authz.AuthenticationTag;
    24  import org.acegisecurity.taglibs.authz.AuthorizeTag;
    25
    26  import org.acegisecurity.userdetails.UserDetails;
    27
    28  import org.springframework.context.ApplicationContext;
    29
    30
    31  /***
    32   * Wrapper the implementation of Acegi Security for Spring JSP tag includes:
    33   * {@link AuthenticationTag}, {@link AclTag}, {@link AuthorizeTag}
    34   *
    35   * @author Wang Qi
    36   * @version $Id: Authz.java,v 1.1 2005/12/01 09:38:50 benalex Exp $
    37   */
    38  public interface Authz {
    39      //~ Methods ================================================================
    40
    41      /***
    42       * all the listed roles must be granted to return true, otherwise fasle;
    43       *
    44       * @param roles - comma separate GrantedAuthoritys
    45       *
    46       * @return granted (true|false)
    47       */
    48      public boolean allGranted(String roles);
    49
    50      /***
    51       * any the listed roles must be granted to return true, otherwise fasle;
    52       *
    53       * @param roles - comma separate GrantedAuthoritys
    54       *
    55       * @return granted (true|false)
    56       */
    57      public boolean anyGranted(String roles);
    58
    59      /***
    60       * set Spring application context which contains acegi related bean
    61       *
    62       * @return DOCUMENT ME!
    63       */
    64      public ApplicationContext getAppCtx();
    65
    66      /***
    67       * return the principal's name, supports the various type of principals
    68       * that can exist in the {@link Authentication} object, such as a String
    69       * or {@link UserDetails} instance
    70       *
    71       * @return string representation of principal's name
    72       */
    73      public String getPrincipal();
    74
    75      /***
    76       * return true if the principal holds either permission specified for the
    77       * provided domain object
    78       *
    79       * <P>
    80       * Only works with permissions that are subclasses of {@link
    81       * net.sf.acegisecurity.acl.basic.AbstractBasicAclEntry}.
    82       * </p>
    83       *
    84       * <p>
    85       * For this class to operate it must be able to access the application
    86       * context via the <code>WebApplicationContextUtils</code> and locate an
    87       * {@link AclManager}.
    88       * </p>
    89       *
    90       * @param domainObject - domain object need acl control
    91       * @param permissions - comma separate integer permissions
    92       *
    93       * @return got acl permission (true|false)
    94       */
    95      public boolean hasPermission(Object domainObject, String permissions);
    96
    97      /***
    98       * none the listed roles must be granted to return true, otherwise fasle;
    99       *
    100      * @param roles - comma separate GrantedAuthoritys
    101      *
    102      * @return granted (true|false)
    103      */
    104     public boolean noneGranted(String roles);
    105
    106     /***
    107      * get Spring application context which contains acegi related bean
    108      *
    109      * @param appCtx DOCUMENT ME!
    110      */
    111     public void setAppCtx(ApplicationContext appCtx);
    112 }