All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.modeshape.jcr.api.AnonymousCredentials Maven / Gradle / Ivy

There is a newer version: 5.4.1.Final
Show newest version
/*
 * ModeShape (http://www.modeshape.org)
 *
 * 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.modeshape.jcr.api;

import java.util.HashMap;
import java.util.Map;
import javax.jcr.Credentials;

/**
 * A {@link Credentials} implementation that can be used to represent anonymous users when ModeShape is configured to allow
 * anonymous users.
 * 

* Note that this implementation supports attributes. */ public class AnonymousCredentials implements Credentials { private static final long serialVersionUID = 1L; private final Map attributes = new HashMap(); /** * Create a new instance of the anonymous credentials. */ public AnonymousCredentials() { } /** * Create a new instance of the anonymous credentials, with the supplied attributes. * * @param attributeName the name of the attribute; may not be null * @param attributeValue the value of the attribute */ public AnonymousCredentials( String attributeName, Object attributeValue ) { setAttribute(attributeName, attributeValue); } /** * Create a new instance of the anonymous credentials, with the supplied attributes. * * @param attribute1Name the name of the attribute; may not be null * @param attribute1Value the value of the attribute * @param attribute2Name the name of the attribute; may not be null * @param attribute2Value the value of the attribute */ public AnonymousCredentials( String attribute1Name, Object attribute1Value, String attribute2Name, Object attribute2Value ) { setAttribute(attribute1Name, attribute1Value); setAttribute(attribute2Name, attribute2Value); } /** * Create a new instance of the anonymous credentials, with the supplied attributes. * * @param attribute1Name the name of the attribute; may not be null * @param attribute1Value the value of the attribute * @param attribute2Name the name of the attribute; may not be null * @param attribute2Value the value of the attribute * @param attribute3Name the name of the attribute; may not be null * @param attribute3Value the value of the attribute */ public AnonymousCredentials( String attribute1Name, Object attribute1Value, String attribute2Name, Object attribute2Value, String attribute3Name, Object attribute3Value ) { setAttribute(attribute1Name, attribute1Value); setAttribute(attribute2Name, attribute2Value); setAttribute(attribute3Name, attribute3Value); } /** * Stores an attribute in this credentials instance. * * @param name a String specifying the name of the attribute * @param value the Object to be stored */ public void setAttribute( String name, Object value ) { // name cannot be null if (name == null) { throw new IllegalArgumentException("name cannot be null"); } // null value is the same as removeAttribute() if (value == null) { removeAttribute(name); return; } synchronized (attributes) { attributes.put(name, value); } } /** * Returns the value of the named attribute as an Object, or null if no attribute of the given name * exists. * * @param name a String specifying the name of the attribute * @return an Object containing the value of the attribute, or null if the attribute does not exist */ public Object getAttribute( String name ) { synchronized (attributes) { return (attributes.get(name)); } } /** * Removes an attribute from this credentials instance. * * @param name a String specifying the name of the attribute to remove */ public void removeAttribute( String name ) { synchronized (attributes) { attributes.remove(name); } } /** * Returns the names of the attributes available to this credentials instance. This method returns an empty array if the * credentials instance has no attributes available to it. * * @return a string array containing the names of the stored attributes */ public String[] getAttributeNames() { synchronized (attributes) { return attributes.keySet().toArray(new String[attributes.keySet().size()]); } } /** * @return attributes */ public Map getAttributes() { synchronized (attributes) { return new HashMap(attributes); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy