You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by fm...@apache.org on 2012/10/18 12:10:09 UTC
svn commit: r1399574 [2/2] - in /felix/trunk: ./ jaas/ jaas/src/
jaas/src/main/ jaas/src/main/java/ jaas/src/main/java/org/
jaas/src/main/java/org/apache/ jaas/src/main/java/org/apache/felix/
jaas/src/main/java/org/apache/felix/jaas/ jaas/src/main/java...
Added: felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Util.java
URL: http://svn.apache.org/viewvc/felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Util.java?rev=1399574&view=auto
==============================================================================
--- felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Util.java (added)
+++ felix/trunk/jaas/src/main/java/org/apache/felix/jaas/internal/Util.java Thu Oct 18 10:10:08 2012
@@ -0,0 +1,210 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.apache.felix.jaas.internal;
+
+import java.util.*;
+
+
+final class Util
+{
+
+ public static Set<String> parseHeader(String header)
+ {
+ //Could have used Sling commons ManifestHeader.parse
+ //but our requirement are simple
+
+ header = trimToNull(header);
+ if (header == null)
+ {
+ return new HashSet<String>();
+ }
+
+ String[] splits = header.split(",");
+ Set<String> values = new HashSet<String>();
+ for (String s : splits)
+ {
+ s = trimToNull(s);
+ if (s != null)
+ {
+ values.add(s);
+ }
+ }
+ return values;
+ }
+
+ //Instead of adding dependency on commons StringUtil we copy the used method below
+
+ public static String trimToNull(String str)
+ {
+ String ts = trim(str);
+ return isEmpty(ts) ? null : ts;
+ }
+
+ private static String trim(String str)
+ {
+ return str == null ? null : str.trim();
+ }
+
+ public static boolean isEmpty(String str)
+ {
+ return str == null || str.length() == 0;
+ }
+
+ //----------------Methods taken from org.apache.sling.commons.osgi.PropertiesUtil
+
+ //These are required to safely access properties from ConfigurationAdmin
+
+ /**
+ * Returns the parameter as a string or the
+ * <code>defaultValue</code> if the parameter is <code>null</code>.
+ * @param propValue the property value or <code>null</code>
+ * @param defaultValue the default string value
+ */
+ public static String toString(Object propValue, String defaultValue)
+ {
+ propValue = toObject(propValue);
+ return (propValue != null) ? propValue.toString() : defaultValue;
+ }
+
+ /**
+ * Returns the parameter as an integer or the
+ * <code>defaultValue</code> if the parameter is <code>null</code> or if
+ * the parameter is not an <code>Integer</code> and cannot be converted to
+ * an <code>Integer</code> from the parameter's string value.
+ * @param propValue the property value or <code>null</code>
+ * @param defaultValue the default integer value
+ */
+ public static int toInteger(Object propValue, int defaultValue)
+ {
+ propValue = toObject(propValue);
+ if (propValue instanceof Integer)
+ {
+ return (Integer) propValue;
+ }
+ else if (propValue != null)
+ {
+ try
+ {
+ return Integer.valueOf(String.valueOf(propValue));
+ }
+ catch (NumberFormatException nfe)
+ {
+ // don't care, fall through to default value
+ }
+ }
+
+ return defaultValue;
+ }
+
+ /**
+ * Returns the parameter as a single value. If the
+ * parameter is neither an array nor a <code>java.util.Collection</code> the
+ * parameter is returned unmodified. If the parameter is a non-empty array,
+ * the first array element is returned. If the property is a non-empty
+ * <code>java.util.Collection</code>, the first collection element is returned.
+ * Otherwise <code>null</code> is returned.
+ * @param propValue the parameter to convert.
+ */
+ private static Object toObject(Object propValue)
+ {
+ if (propValue == null)
+ {
+ return null;
+ }
+ else if (propValue.getClass().isArray())
+ {
+ Object[] prop = (Object[]) propValue;
+ return prop.length > 0 ? prop[0] : null;
+ }
+ else if (propValue instanceof Collection<?>)
+ {
+ Collection<?> prop = (Collection<?>) propValue;
+ return prop.isEmpty() ? null : prop.iterator().next();
+ }
+ else
+ {
+ return propValue;
+ }
+ }
+
+ /**
+ * Returns the parameter as an array of Strings. If
+ * the parameter is a scalar value its string value is returned as a single
+ * element array. If the parameter is an array, the elements are converted to
+ * String objects and returned as an array. If the parameter is a collection, the
+ * collection elements are converted to String objects and returned as an array.
+ * Otherwise (if the property is <code>null</code>) a provided default value is
+ * returned.
+ * @param propValue The object to convert.
+ * @param defaultArray The default array to return.
+ */
+ public static String[] toStringArray(Object propValue, String[] defaultArray)
+ {
+ if (propValue == null)
+ {
+ // no value at all
+ return defaultArray;
+
+ }
+ else if (propValue instanceof String)
+ {
+ // single string
+ return new String[] { (String) propValue };
+
+ }
+ else if (propValue instanceof String[])
+ {
+ // String[]
+ return (String[]) propValue;
+
+ }
+ else if (propValue.getClass().isArray())
+ {
+ // other array
+ Object[] valueArray = (Object[]) propValue;
+ List<String> values = new ArrayList<String>(valueArray.length);
+ for (Object value : valueArray)
+ {
+ if (value != null)
+ {
+ values.add(value.toString());
+ }
+ }
+ return values.toArray(new String[values.size()]);
+
+ }
+ else if (propValue instanceof Collection<?>)
+ {
+ // collection
+ Collection<?> valueCollection = (Collection<?>) propValue;
+ List<String> valueList = new ArrayList<String>(valueCollection.size());
+ for (Object value : valueCollection)
+ {
+ if (value != null)
+ {
+ valueList.add(value.toString());
+ }
+ }
+ return valueList.toArray(new String[valueList.size()]);
+ }
+
+ return defaultArray;
+ }
+}
Added: felix/trunk/jaas/src/main/java/org/apache/felix/jaas/package-info.java
URL: http://svn.apache.org/viewvc/felix/trunk/jaas/src/main/java/org/apache/felix/jaas/package-info.java?rev=1399574&view=auto
==============================================================================
--- felix/trunk/jaas/src/main/java/org/apache/felix/jaas/package-info.java (added)
+++ felix/trunk/jaas/src/main/java/org/apache/felix/jaas/package-info.java Thu Oct 18 10:10:08 2012
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+
+/**
+ * Provides support for performing JAAS based authentication in OSGi
+ *
+ * @version 1.0
+ */
+@Version("1.0")
+@Export(optional = "provide:=true")
+package org.apache.felix.jaas;
+
+import aQute.bnd.annotation.Version;
+import aQute.bnd.annotation.Export;
Added: felix/trunk/jaas/src/main/resources/OSGI-INF/l10n/bundle.properties
URL: http://svn.apache.org/viewvc/felix/trunk/jaas/src/main/resources/OSGI-INF/l10n/bundle.properties?rev=1399574&view=auto
==============================================================================
--- felix/trunk/jaas/src/main/resources/OSGI-INF/l10n/bundle.properties (added)
+++ felix/trunk/jaas/src/main/resources/OSGI-INF/l10n/bundle.properties Thu Oct 18 10:10:08 2012
@@ -0,0 +1,19 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+intro=JAAS Configuration Details
Added: felix/trunk/jaas/src/main/resources/OSGI-INF/metatype/metatype.properties
URL: http://svn.apache.org/viewvc/felix/trunk/jaas/src/main/resources/OSGI-INF/metatype/metatype.properties?rev=1399574&view=auto
==============================================================================
--- felix/trunk/jaas/src/main/resources/OSGI-INF/metatype/metatype.properties (added)
+++ felix/trunk/jaas/src/main/resources/OSGI-INF/metatype/metatype.properties Thu Oct 18 10:10:08 2012
@@ -0,0 +1,62 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+#
+# suppress inspection "UnusedProperty" for whole file
+
+jaas.name=Apache Felix JAAS Configuration Factory
+jaas.description=Captures JAAS configuration with options, control flag and classname
+
+
+jaas.classname.name=Class Name
+jaas.classname.description=Fully qualified name of the LoginModule class
+
+jaas.controlFlag.name=Control Flag
+jaas.controlFlag.description=The Flag value controls the overall behavior as authentication proceeds down the stack
+
+jaas.flag.required=Required
+jaas.flag.requisite=Requisite
+jaas.flag.sufficient=Sufficient
+jaas.flag.optional=Optional
+
+jaas.ranking.name = Ranking
+jaas.ranking.description = The relative ranking of this configuration.
+
+jaas.options.name = Options
+jaas.options.description = Properties in the form of key value pairs that are passed on to the LoginModule(name=value pairs)
+
+jaas.realmName.name = Realm Name
+jaas.realmName.description = Name of the application
+
+jaas.spi.name = Apache Felix JAAS Configuration SPI
+jaas.spi.description= JAAS Configuration SPI implementation which provides configuration based on OSGi ConfigAdmin
+
+jaas.defaultRealmName.name = Default JAAS Realm
+jaas.defaultRealmName.description = Default realm name to use if no realm is explicitly defined for LoginModule
+
+jaas.configProviderName.name=JAAS Config Provider name
+jaas.configProviderName.description=Name of the provider used to register the OSGi based configuration provider
+
+jaas.globalConfigPolicy.name=Global Configuration Policy
+jaas.globalConfigPolicy.description=Policy to manage global configuration. (1) Default: Global configuration is not \
+ modified. (2). Replace Global Configuration: Global configuration is replaced with OSGi based configuration \
+ (3). Proxy Global Configuration: Global configuration would be replaced with proxy configuration. The proxy \
+ would check with OSGi based configuration. If no config is found it would look in default global configuration
+
+jaas.configPolicy.default=Default
+jaas.configPolicy.replace=Replace Global Configuration
+jaas.configPolicy.proxy=Proxy Global Configuration
\ No newline at end of file
Modified: felix/trunk/pom.xml
URL: http://svn.apache.org/viewvc/felix/trunk/pom.xml?rev=1399574&r1=1399573&r2=1399574&view=diff
==============================================================================
--- felix/trunk/pom.xml (original)
+++ felix/trunk/pom.xml Thu Oct 18 10:10:08 2012
@@ -122,6 +122,7 @@
<module>webconsole-plugins/event</module>
<module>fileinstall</module>
<module>useradmin</module>
+ <module>jaas</module>
<module>gogo</module>