SecurityRule.java :  » J2EE » spring-ide_2.3.0 » org » springframework » webflow » security » Java Open Source

Java Open Source » J2EE » spring ide_2.3.0 
spring ide_2.3.0 » org » springframework » webflow » security » SecurityRule.java
/*
 * Copyright 2004-2008 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.webflow.security;

import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

/**
 * Encapsulates the rules for comparing security attributes
 * 
 * @author Scott Andrews
 */
public class SecurityRule {

  /**
   * Attribute name for the location of the security rule
   */
  public static final String SECURITY_ATTRIBUTE_NAME = "secured";

  /**
   * Compare method where any attribute authorization allows access
   */
  public static final short COMPARISON_ANY = 1;

  /**
   * Compare method where all attribute authorization allows access
   */
  public static final short COMPARISON_ALL = 2;

  private Collection attributes;

  private short comparisonType = COMPARISON_ANY;

  /**
   * Convert attributes to comma separated String
   * @param attributes the attributes to convert
   * @return comma separated String
   */
  public static String securityAttributesToCommaDelimitedList(Collection attributes) {
    StringBuffer attrs = new StringBuffer();
    Iterator attributeIt = attributes.iterator();
    while (attributeIt.hasNext()) {
      if (attrs.length() != 0) {
        attrs.append(", ");
      }
      attrs.append(attributeIt.next());
    }
    return attrs.toString();
  }

  /**
   * Convert attributes from comma separated String to Collection
   * @param attributes the attributes to convert
   * @return comma parsed Collection
   */
  public static Collection commaDelimitedListToSecurityAttributes(String attributes) {
    Collection attrs = new HashSet();
    Iterator attributeIt = Arrays.asList(attributes.split(",")).iterator();
    while (attributeIt.hasNext()) {
      String attribute = ((String) attributeIt.next()).trim();
      if (!"".equals(attribute)) {
        attrs.add(attribute);
      }
    }
    return attrs;
  }

  /**
   * Gets security attributes
   * @return security attributes
   */
  public Collection getAttributes() {
    return attributes;
  }

  /**
   * Sets security attributes
   * @param attributes security attributes
   */
  public void setAttributes(Collection attributes) {
    this.attributes = attributes;
  }

  /**
   * Gets comparison type
   * @return comparison type
   */
  public short getComparisonType() {
    return comparisonType;
  }

  /**
   * Sets comparison type
   * @param comparisonType comparison type
   */
  public void setComparisonType(short comparisonType) {
    this.comparisonType = comparisonType;
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.