This is an automated email from the ASF dual-hosted git repository.
cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/felix-dev.git
The following commit(s) were added to refs/heads/master by this push:
new 4234bb6437 Unmaintained code removal - examples/jaas
4234bb6437 is described below
commit 4234bb643789aa57dd435dbb66047da0e8ed6dcf
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Tue Aug 22 18:03:57 2023 +0200
Unmaintained code removal - examples/jaas
---
examples/jaas/app/pom.xml | 95 -----------
.../app/internal/BootClasspathDemoServlet.java | 82 ---------
.../jaas/app/internal/FactoryDemoServlet.java | 83 ---------
.../jaas/app/internal/GlobalConfigDemoServlet.java | 86 ----------
.../internal/ServletRequestCallbackHandler.java | 68 --------
.../example/jaas/app/internal/TCCLDemoServlet.java | 100 -----------
examples/jaas/jdbc-h2/pom.xml | 120 -------------
.../example/jaas/jdbc/internal/H2Activator.java | 96 -----------
examples/jaas/jdbc-h2/src/main/resources/roles.csv | 5 -
examples/jaas/jdbc-h2/src/main/resources/users.csv | 4 -
examples/jaas/launcher/pom.xml | 112 ------------
examples/jaas/launcher/src/main/bundles/list.xml | 167 ------------------
...g.apache.felix.example.jaas.jdbc.factory-h2.cfg | 22 ---
...che.felix.jaas.Configuration.factory-simple.cfg | 23 ---
.../jaas/launcher/src/main/sling/common.properties | 22 ---
examples/jaas/lm-config/pom.xml | 51 ------
.../config/internal/SampleConfigLoginModule.java | 105 ------------
.../jaas/config/internal/SamplePrincipal.java | 68 --------
examples/jaas/lm-jdbc/pom.xml | 101 -----------
.../felix/example/jaas/jdbc/JdbcLoginModule.java | 187 ---------------------
.../example/jaas/jdbc/JdbcLoginModuleFactory.java | 139 ---------------
.../felix/example/jaas/jdbc/RolePrincipal.java | 58 -------
.../felix/example/jaas/jdbc/UserPrincipal.java | 58 -------
.../OSGI-INF/metatype/metatype.properties | 50 ------
examples/jaas/pom.xml | 42 -----
25 files changed, 1944 deletions(-)
diff --git a/examples/jaas/app/pom.xml b/examples/jaas/app/pom.xml
deleted file mode 100644
index 7beb049dcc..0000000000
--- a/examples/jaas/app/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../../pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.app</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>JAAS Example - App Module</name>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <obrRepository>NONE</obrRepository>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
- <DynamicImport-Package>
- org.apache.felix.jaas.boot
- </DynamicImport-Package>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- <version>1.11.0</version>
- <executions>
- <execution>
- <id>generate-scr-scrdescriptor</id>
- <goals>
- <goal>scr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <version>1.9.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.jaas</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/BootClasspathDemoServlet.java
b/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/BootClasspathDemoServlet.java
deleted file mode 100644
index ef3bb8ee3c..0000000000
---
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/BootClasspathDemoServlet.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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.example.jaas.app.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-
-@Component
-@Service(value = Servlet.class)
-@Property(name = "alias",value = "/jaas/boot")
-public class BootClasspathDemoServlet extends HttpServlet
-{
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
- //Demonstrates the JAAS authentication if the
- // 1. Felix JAAS Boot support is used.
- // 2. Global configuration policy is used - This needs to be enabled
via
- // configuration of 'Apache Felix JAAS Configuration SPI'
- //
- //In that case client code does not have to
- //manage Thread Context Classloader or provide explicit configuration
-
- PrintWriter pw = resp.getWriter();
- CallbackHandler handler = new ServletRequestCallbackHandler(req);
-
- Subject subject = new Subject();
- try
- {
- LoginContext lc = new LoginContext("sample", subject, handler);
- lc.login();
-
- pw.println("Principal authentication successful");
- pw.println(subject);
- }
- catch (LoginException e)
- {
- handleAuthenticationFailure(e,pw);
- }
-
- }
-
- private void handleAuthenticationFailure(LoginException e, PrintWriter pw)
- {
- pw.println("Authentication Failed");
- pw.println(e);
- }
-
-}
diff --git
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/FactoryDemoServlet.java
b/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/FactoryDemoServlet.java
deleted file mode 100644
index 851d5e7988..0000000000
---
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/FactoryDemoServlet.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * 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.example.jaas.app.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.jaas.LoginContextFactory;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Reference;
-import org.apache.felix.scr.annotations.Service;
-
-@Component
-@Service(value = Servlet.class)
-@Property(name = "alias",value = "/jaas/factory")
-public class FactoryDemoServlet extends HttpServlet
-{
- @Reference
- private LoginContextFactory loginContextFactory;
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
-
- //Demonstrates the JAAS authentication if the
- // 1. Felix JAAS LoginContextFactory is used.
- //In that case client code does not have to
- //manage Thread Context Classloader or provide explicit configuration
-
- PrintWriter pw = resp.getWriter();
- CallbackHandler handler = new ServletRequestCallbackHandler(req);
- Subject subject = new Subject();
- try
- {
- LoginContext lc =
loginContextFactory.createLoginContext("sample",subject,handler);
- lc.login();
-
- pw.println("Principal authentication successful");
- pw.println(subject);
- }
- catch (LoginException e)
- {
- handleAuthenticationFailure(e,pw);
- }
-
- }
-
- private void handleAuthenticationFailure(LoginException e, PrintWriter pw)
- {
- pw.println("Authentication Failed");
- pw.println(e);
- }
-
-}
diff --git
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/GlobalConfigDemoServlet.java
b/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/GlobalConfigDemoServlet.java
deleted file mode 100644
index ba874a4c9a..0000000000
---
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/GlobalConfigDemoServlet.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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.example.jaas.app.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-
-@Component
-@Service(value = Servlet.class)
-@Property(name = "alias",value = "/jaas/global")
-public class GlobalConfigDemoServlet extends HttpServlet
-{
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
-
- //Demonstrates the JAAS authentication if the
- // 1. Replace Global configuration policy is used
- //
- //This needs to be enabled via configuration of 'Apache Felix JAAS
Configuration SPI'
- //In that case client code does not have to provide explicit
configuration
-
- PrintWriter pw = resp.getWriter();
- CallbackHandler handler = new ServletRequestCallbackHandler(req);
-
- Subject subject = new Subject();
- final ClassLoader cl = Thread.currentThread().getContextClassLoader();
- try
- {
-
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- LoginContext lc = new LoginContext("sample", subject, handler);
- lc.login();
-
- pw.println("Principal authentication successful");
- pw.println(subject);
- }
- catch (LoginException e)
- {
- handleAuthenticationFailure(e,pw);
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(cl);
- }
- }
-
- private void handleAuthenticationFailure(LoginException e, PrintWriter pw)
- {
- pw.println("Authentication Failed");
- pw.println(e);
- }
-
-}
diff --git
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/ServletRequestCallbackHandler.java
b/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/ServletRequestCallbackHandler.java
deleted file mode 100644
index f7920f638f..0000000000
---
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/ServletRequestCallbackHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.example.jaas.app.internal;
-
-import java.io.IOException;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import javax.servlet.http.HttpServletRequest;
-
-public class ServletRequestCallbackHandler implements CallbackHandler
-{
-
- private final HttpServletRequest request;
-
- public ServletRequestCallbackHandler(HttpServletRequest request)
- {
- this.request = request;
- }
-
- @Override
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException
- {
- for (Callback c : callbacks)
- {
- if (c instanceof NameCallback)
- {
- ((NameCallback) c).setName(getParam("j_username"));
- }
- if (c instanceof PasswordCallback)
- {
- ((PasswordCallback)
c).setPassword(getParam("j_password").toCharArray());
- }
- }
- }
-
- private String getParam(String name)
- {
- String value = request.getParameter(name);
- if (value == null)
- {
- throw new IllegalArgumentException("No parameter with name [" +
name
- + "] found");
- }
- return value.trim();
- }
-}
diff --git
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/TCCLDemoServlet.java
b/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/TCCLDemoServlet.java
deleted file mode 100644
index cb8c70fdfa..0000000000
---
a/examples/jaas/app/src/main/java/org/apache/felix/example/jaas/app/internal/TCCLDemoServlet.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * 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.example.jaas.app.internal;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.login.Configuration;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
-import javax.servlet.Servlet;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-
-@Component
-@Service(value = Servlet.class)
-@Property(name = "alias",value = "/jaas/tccl")
-public class TCCLDemoServlet extends HttpServlet
-{
-
- @Override
- protected void doPost(HttpServletRequest req, HttpServletResponse resp)
- throws ServletException, IOException
- {
-
- //Demonstrates the JAAS authentication
- //In following case the client code would have to
- // 1. Manage the thread's context classloader
- // 2. Add a DynamicImport for org.apache.felix.jaas.boot
- // 3. Fetch the config using the Configuration.getInstance API and
pass that on
-
- PrintWriter pw = resp.getWriter();
- CallbackHandler handler = new ServletRequestCallbackHandler(req);
-
- Subject subject = new Subject();
- final ClassLoader cl = Thread.currentThread().getContextClassLoader();
- try
- {
- Configuration config =
Configuration.getInstance("JavaLoginConfig", null,
- "FelixJaasProvider");
-
Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- LoginContext lc = new LoginContext("sample", subject, handler,
config);
- lc.login();
-
- pw.println("Principal authentication successful");
- pw.println(subject);
- }
- catch (NoSuchAlgorithmException e)
- {
- throw new RuntimeException(e);
- }
- catch (NoSuchProviderException e)
- {
- throw new RuntimeException(e);
- }
- catch (LoginException e)
- {
- handleAuthenticationFailure(e,pw);
- }
- finally
- {
- Thread.currentThread().setContextClassLoader(cl);
- }
-
- }
-
- private void handleAuthenticationFailure(LoginException e, PrintWriter pw)
- {
- pw.println("Authentication Failed");
- pw.println(e);
- }
-
-}
diff --git a/examples/jaas/jdbc-h2/pom.xml b/examples/jaas/jdbc-h2/pom.xml
deleted file mode 100644
index 68025dd0e6..0000000000
--- a/examples/jaas/jdbc-h2/pom.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../../pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.jdbc-h2</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>JAAS Example - H2 Db</name>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <obrRepository>NONE</obrRepository>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-
<Bundle-Activator>org.apache.felix.example.jaas.jdbc.internal.H2Activator</Bundle-Activator>
- <Embed-Dependency>
- h2
- </Embed-Dependency>
- <Import-Package>
- org.osgi.service.jdbc.*;
- org.apache.lucene.*;
- javax.transaction.*;resolution:=optional,
- *
- </Import-Package>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- <version>1.11.0</version>
- <executions>
- <execution>
- <id>generate-scr-scrdescriptor</id>
- <goals>
- <goal>scr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.rat</groupId>
- <artifactId>apache-rat-plugin</artifactId>
- <configuration>
- <includes>
- <include>src/**</include>
- </includes>
- <excludes>
- <exclude>src/main/resources/*.csv</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <version>1.9.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.4</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <version>1.3.171</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.4</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git
a/examples/jaas/jdbc-h2/src/main/java/org/apache/felix/example/jaas/jdbc/internal/H2Activator.java
b/examples/jaas/jdbc-h2/src/main/java/org/apache/felix/example/jaas/jdbc/internal/H2Activator.java
deleted file mode 100644
index 321b16d8d4..0000000000
---
a/examples/jaas/jdbc-h2/src/main/java/org/apache/felix/example/jaas/jdbc/internal/H2Activator.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * 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.example.jaas.jdbc.internal;
-
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.Dictionary;
-import java.util.Hashtable;
-
-import javax.servlet.Servlet;
-import javax.sql.DataSource;
-
-import org.h2.Driver;
-import org.h2.jdbcx.JdbcDataSource;
-import org.h2.server.web.WebServlet;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class H2Activator implements BundleActivator
-{
- private Logger log = LoggerFactory.getLogger(getClass());
- private JdbcDataSource ds;
- private Connection connection;
-
- @Override
- public void start(BundleContext context) throws Exception
- {
- ds = new JdbcDataSource();
- ds.setURL("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE");
-
- Dictionary<String, String> props = new Hashtable<String, String>();
- props.put("dataSourceName", "test");
- context.registerService(DataSource.class.getName(), ds, props);
-
- loadData(ds);
-
- //Register the H2 console servlet
- Dictionary<String, String> servletProps = new Hashtable<String,
String>();
- servletProps.put("alias", "/h2");
- servletProps.put("init.webAllowOthers", "true");
-
- context.registerService(Servlet.class.getName(), new WebServlet(),
servletProps);
- }
-
- private void loadData(JdbcDataSource ds) throws SQLException
- {
- //Load the default data of user and roles
- connection = ds.getConnection();
- Statement stmt = connection.createStatement();
- stmt.execute("CREATE TABLE USERS AS SELECT * FROM
CSVREAD('classpath:users.csv',null,'lineComment=#')");
- stmt.execute("CREATE TABLE ROLES AS SELECT * FROM
CSVREAD('classpath:roles.csv',null,'lineComment=#')");
- stmt.close();
- log.info("Successfully imported default user and roles");
- }
-
- @Override
- public void stop(BundleContext context) throws Exception
- {
- if (connection != null)
- {
- Statement stat = connection.createStatement();
- stat.execute("SHUTDOWN");
- stat.close();
-
- try
- {
- connection.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- }
- Driver.unload();
- }
-}
diff --git a/examples/jaas/jdbc-h2/src/main/resources/roles.csv
b/examples/jaas/jdbc-h2/src/main/resources/roles.csv
deleted file mode 100644
index b073c0973b..0000000000
--- a/examples/jaas/jdbc-h2/src/main/resources/roles.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-#Default role to user mapping
-ROLE,USERNAME
-ADMIN,foo
-ADMIN,admin
-USER,bob
\ No newline at end of file
diff --git a/examples/jaas/jdbc-h2/src/main/resources/users.csv
b/examples/jaas/jdbc-h2/src/main/resources/users.csv
deleted file mode 100644
index 83f16765de..0000000000
--- a/examples/jaas/jdbc-h2/src/main/resources/users.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-USERNAME,PASSWORD
-foo,bar
-bob,password
-admin,password
\ No newline at end of file
diff --git a/examples/jaas/launcher/pom.xml b/examples/jaas/launcher/pom.xml
deleted file mode 100644
index fb63738b27..0000000000
--- a/examples/jaas/launcher/pom.xml
+++ /dev/null
@@ -1,112 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../../pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.launcher</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
-
- <name>JAAS Example - Launcher Module</name>
-
- <properties>
- <jaas.example.version>${project.version}</jaas.example.version>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.sling</groupId>
- <artifactId>maven-launchpad-plugin</artifactId>
- <version>2.2.0</version>
- <executions>
- <execution>
- <id>prepare-package-jar</id>
- <goals>
- <goal>prepare-package</goal>
- </goals>
- <configuration>
- <includeDefaultBundles>false</includeDefaultBundles>
- </configuration>
- </execution>
- <execution>
- <id>create-bundle-jar</id>
- <goals>
- <goal>create-bundle-jar</goal>
- </goals>
- <configuration>
- <includeDefaultBundles>false</includeDefaultBundles>
- <resources>
- <!-- Legal stuff -->
- <resource>
-
<directory>${project.build.directory}/maven-shared-archive-resources</directory>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>create-standalone-jar</id>
- <goals>
- <goal>jar</goal>
- </goals>
- <configuration>
- <classifier>standalone</classifier>
- <archive>
-
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- <manifest>
- <addDefaultImplementationEntries>
- true
- </addDefaultImplementationEntries>
- </manifest>
- </archive>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.launchpad.base</artifactId>
- <version>2.5.0</version>
- <classifier>app</classifier>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-</project>
diff --git a/examples/jaas/launcher/src/main/bundles/list.xml
b/examples/jaas/launcher/src/main/bundles/list.xml
deleted file mode 100644
index 2762b335cd..0000000000
--- a/examples/jaas/launcher/src/main/bundles/list.xml
+++ /dev/null
@@ -1,167 +0,0 @@
-<?xml version="1.0"?>
-<!--
- ~ 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.
- -->
-
-<bundles>
- <startLevel level="0">
- <!-- felix httpservice whiteboard -->
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.http.whiteboard</artifactId>
- <version>2.2.0</version>
- </bundle>
- <bundle>
- <groupId>commons-io</groupId>
- <artifactId>commons-io</artifactId>
- <version>1.4</version>
- </bundle>
- <bundle>
- <groupId>commons-fileupload</groupId>
- <artifactId>commons-fileupload</artifactId>
- <version>1.2.2</version>
- </bundle>
-
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.jaas</artifactId>
- <version>${jaas.example.version}</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.app</artifactId>
- <version>${jaas.example.version}</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.lm-config</artifactId>
- <version>${jaas.example.version}</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.lm-jdbc</artifactId>
- <version>${jaas.example.version}</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.jdbc-h2</artifactId>
- <version>${jaas.example.version}</version>
- </bundle>
-
- <!-- Bundles lrequired for Sling Installer Support -->
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.settings</artifactId>
- <version>1.2.2</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.launchpad.installer</artifactId>
- <version>1.2.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.installer.api</artifactId>
- <version>1.0.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.installer.core</artifactId>
- <version>3.4.6</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.installer.console</artifactId>
- <version>1.0.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.installer.factory.configuration</artifactId>
- <version>1.0.10</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.installer.provider.file</artifactId>
- <version>1.0.2</version>
- </bundle>
- </startLevel>
- <startLevel level="1">
- <bundle>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.4</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.log</artifactId>
- <version>3.0.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.logservice</artifactId>
- <version>1.0.2</version>
- </bundle>
- <bundle>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- <version>1.6.4</version>
- </bundle>
- <bundle>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- <version>1.6.4</version>
- </bundle>
- </startLevel>
-
- <startLevel level="5">
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.webconsole</artifactId>
- <version>4.2.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.geronimo.bundles</groupId>
- <artifactId>json</artifactId>
- <version>20090211_1</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.webconsole.plugins.ds</artifactId>
- <version>1.0.0</version>
- </bundle>
- </startLevel>
-
- <startLevel level="10">
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr</artifactId>
- <version>1.6.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.configadmin</artifactId>
- <version>1.6.0</version>
- </bundle>
- <bundle>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.metatype</artifactId>
- <version>1.0.6</version>
- </bundle>
-
- </startLevel>
-</bundles>
diff --git
a/examples/jaas/launcher/src/main/config/org.apache.felix.example.jaas.jdbc.factory-h2.cfg
b/examples/jaas/launcher/src/main/config/org.apache.felix.example.jaas.jdbc.factory-h2.cfg
deleted file mode 100644
index e0e89806e2..0000000000
---
a/examples/jaas/launcher/src/main/config/org.apache.felix.example.jaas.jdbc.factory-h2.cfg
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# 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.
-#
-jaas.realmName=sample
-jaas.controlFlag=sufficient
-
-datasourceName=test
diff --git
a/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg
b/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg
deleted file mode 100644
index 055c554616..0000000000
---
a/examples/jaas/launcher/src/main/config/org.apache.felix.jaas.Configuration.factory-simple.cfg
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# 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.
-#
-
-jaas.classname=org.apache.felix.example.jaas.config.internal.SampleConfigLoginModule
-jaas.controlFlag=sufficient
-jaas.ranking=0
-jaas.realmName=sample
diff --git a/examples/jaas/launcher/src/main/sling/common.properties
b/examples/jaas/launcher/src/main/sling/common.properties
deleted file mode 100644
index 4e2d21226c..0000000000
--- a/examples/jaas/launcher/src/main/sling/common.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# 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
-sling.bootdelegation.class.org.apache.felix.jaas.boot.ProxyLoginModule = \
- org.apache.felix.jaas.boot
-sling.home = jaas-sample
diff --git a/examples/jaas/lm-config/pom.xml b/examples/jaas/lm-config/pom.xml
deleted file mode 100644
index 7ecc36ef0e..0000000000
--- a/examples/jaas/lm-config/pom.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../../pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.lm-config</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>JAAS Example - Config based Login Module</name>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <obrRepository>NONE</obrRepository>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-
<Jaas-ModuleClass>org.apache.felix.example.jaas.config.internal.SampleConfigLoginModule</Jaas-ModuleClass>
- </instructions>
- </configuration>
- </plugin>
-
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.5.1</version>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
-
-
-</project>
diff --git
a/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SampleConfigLoginModule.java
b/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SampleConfigLoginModule.java
deleted file mode 100644
index 79c9c082c7..0000000000
---
a/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SampleConfigLoginModule.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.example.jaas.config.internal;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Map;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-
-public class SampleConfigLoginModule implements LoginModule
-{
- private Subject subject;
- private CallbackHandler handler;
- private Map<String, ?> options;
- private Map<String, ?> sharedState;
- private boolean succeeded;
- private String name;
-
- @Override
- public void initialize(Subject subject, CallbackHandler callbackHandler,
- Map<String, ?> sharedState, Map<String, ?> options)
- {
- this.subject = subject;
- this.options = options;
- this.handler = callbackHandler;
- this.sharedState = sharedState;
- }
-
- @Override
- public boolean login() throws LoginException
- {
- Callback[] callbacks = new Callback[2];
- callbacks[0] = new NameCallback("Name");
- callbacks[1] = new PasswordCallback("Password", false);
-
- try
- {
- handler.handle(callbacks);
- }
- catch (IOException e)
- {
- throw new LoginException(e.getMessage());
- }
- catch (UnsupportedCallbackException e)
- {
- throw new LoginException(e.getMessage());
- }
-
- String name = ((NameCallback) callbacks[0]).getName();
- char[] password = ((PasswordCallback) callbacks[1]).getPassword();
-
- boolean result = Arrays.equals(name.toCharArray(), password);
- succeeded = result;
- this.name = name;
- return result;
- }
-
- @Override
- public boolean commit() throws LoginException
- {
- if (succeeded)
- {
- subject.getPrincipals().add(new SamplePrincipal(name,
"SampleConfigLoginModule"));
- return true;
- }
- return false;
- }
-
- @Override
- public boolean abort() throws LoginException
- {
- return true;
- }
-
- @Override
- public boolean logout() throws LoginException
- {
- return false;
- }
-}
diff --git
a/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SamplePrincipal.java
b/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SamplePrincipal.java
deleted file mode 100644
index 593236292d..0000000000
---
a/examples/jaas/lm-config/src/main/java/org/apache/felix/example/jaas/config/internal/SamplePrincipal.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * 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.example.jaas.config.internal;
-
-import java.security.Principal;
-
-public class SamplePrincipal implements Principal
-{
- private final String name;
- private final String prefix;
-
- public SamplePrincipal(String name, String prefix)
- {
- this.name = name;
- this.prefix = prefix;
- }
-
- @Override
- public String getName()
- {
- return name;
- }
-
- @Override
- public boolean equals(Object o)
- {
- if (this == o)
- return true;
- if (o == null || getClass() != o.getClass())
- return false;
-
- SamplePrincipal that = (SamplePrincipal) o;
-
- if (!name.equals(that.name))
- return false;
-
- return true;
- }
-
- @Override
- public int hashCode()
- {
- return name.hashCode();
- }
-
- @Override
- public String toString()
- {
- return prefix + ":" + name;
- }
-}
diff --git a/examples/jaas/lm-jdbc/pom.xml b/examples/jaas/lm-jdbc/pom.xml
deleted file mode 100644
index e61a13fa5c..0000000000
--- a/examples/jaas/lm-jdbc/pom.xml
+++ /dev/null
@@ -1,101 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../../pom/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.felix.example</groupId>
- <artifactId>org.apache.felix.example.jaas.lm-jdbc</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>JAAS Example - JDBC based Login Module</name>
-
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.3.5</version>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
- <Embed-Dependency>
- org.apache.sling.commons.osgi;inline=
- org/apache/sling/commons/osgi/PropertiesUtil*.class
- </Embed-Dependency>
- </instructions>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-scr-plugin</artifactId>
- <version>1.11.0</version>
- <executions>
- <execution>
- <id>generate-scr-scrdescriptor</id>
- <goals>
- <goal>scr</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.6</source>
- <target>1.6</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.core</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.compendium</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.scr.annotations</artifactId>
- <version>1.9.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.felix</groupId>
- <artifactId>org.apache.felix.jaas</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.sling</groupId>
- <artifactId>org.apache.sling.commons.osgi</artifactId>
- <version>2.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.6.4</version>
- <scope>provided</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModule.java
b/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModule.java
deleted file mode 100644
index 39c93bcd15..0000000000
---
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModule.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * 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.example.jaas.jdbc;
-
-import java.io.IOException;
-import java.security.Principal;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-import javax.sql.DataSource;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The code is based on org.apache.karaf.jaas.modules.jdbc.JDBCLoginModule
- */
-public class JdbcLoginModule implements LoginModule {
- private static Logger log = LoggerFactory.getLogger(JdbcLoginModule.class);
- private final DataSource dataSource;
- private CallbackHandler callbackHandler;
- private Set<Principal> principals;
- private boolean detailedLoginExcepion;
- private Subject subject;
- private final String passwordQuery;
- private final String roleQuery;
-
- public JdbcLoginModule(DataSource dataSource, String passwordQuery, String
roleQuery) {
- this.dataSource = dataSource;
- this.passwordQuery = passwordQuery;
- this.roleQuery = roleQuery;
- }
-
-
- @Override
- public void initialize(Subject subject, CallbackHandler callbackHandler,
- Map<String, ?> sharedState, Map<String, ?> options)
{
- this.callbackHandler = callbackHandler;
- this.subject = subject;
-
- }
-
- @Override
- public boolean login() throws LoginException {
- Connection connection = null;
-
- PreparedStatement passwordStatement = null;
- PreparedStatement roleStatement = null;
-
- ResultSet passwordResultSet = null;
- ResultSet roleResultSet = null;
-
- Callback[] callbacks = new Callback[2];
- callbacks[0] = new NameCallback("Username: ");
- callbacks[1] = new PasswordCallback("Password: ", false);
-
- try {
- callbackHandler.handle(callbacks);
- } catch (IOException ioe) {
- throw new LoginException(ioe.getMessage());
- } catch (UnsupportedCallbackException uce) {
- throw new LoginException(uce.getMessage() + " not available to
obtain information from user");
- }
-
- String user = ((NameCallback) callbacks[0]).getName();
-
- char[] tmpPassword = ((PasswordCallback) callbacks[1]).getPassword();
- if (tmpPassword == null) {
- tmpPassword = new char[0];
- }
-
- String password = new String(tmpPassword);
- principals = new HashSet<Principal>();
-
- try {
- connection = dataSource.getConnection();
-
- //Retrieve user credentials from database.
- passwordStatement = connection.prepareStatement(passwordQuery);
- passwordStatement.setString(1, user);
- passwordResultSet = passwordStatement.executeQuery();
-
- if (!passwordResultSet.next()) {
- if (!this.detailedLoginExcepion) {
- throw new LoginException("login failed");
- } else {
- throw new LoginException("Password for " + user + " does
not match");
- }
- } else {
- String storedPassword = passwordResultSet.getString(1);
-
- if (!checkPassword(password, storedPassword)) {
- if (!this.detailedLoginExcepion) {
- throw new LoginException("login failed");
- } else {
- throw new LoginException("Password for " + user + "
does not match");
- }
- }
- principals.add(new UserPrincipal(user));
- }
-
- //Retrieve user roles from database
- roleStatement = connection.prepareStatement(roleQuery);
- roleStatement.setString(1, user);
- roleResultSet = roleStatement.executeQuery();
- while (roleResultSet.next()) {
- String role = roleResultSet.getString(1);
- principals.add(new RolePrincipal(role));
- }
- } catch (Exception ex) {
- throw new LoginException("Error has occured while retrieving
credentials from database:" + ex.getMessage());
- } finally {
- try {
- if (passwordResultSet != null) {
- passwordResultSet.close();
- }
- if (passwordStatement != null) {
- passwordStatement.close();
- }
- if (roleResultSet != null) {
- roleResultSet.close();
- }
- if (roleStatement != null) {
- roleStatement.close();
- }
- if (connection != null) {
- connection.close();
- }
- } catch (SQLException ex) {
- log.warn("Failed to clearly close connection to the
database:", ex);
- }
- }
- return true;
- }
-
- private boolean checkPassword(String password, String storedPassword) {
- return password.equals(storedPassword);
- }
-
- @Override
- public boolean commit() throws LoginException {
- subject.getPrincipals().addAll(principals);
- return true;
- }
-
- @Override
- public boolean abort() throws LoginException {
- subject.getPrincipals().removeAll(principals);
- principals.clear();
- return true;
- }
-
- @Override
- public boolean logout() throws LoginException {
- return false;
- }
-}
diff --git
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModuleFactory.java
b/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModuleFactory.java
deleted file mode 100644
index 1cc93e46bb..0000000000
---
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/JdbcLoginModuleFactory.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * 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.example.jaas.jdbc;
-
-import java.util.Dictionary;
-import java.util.Hashtable;
-import java.util.Map;
-
-import javax.security.auth.spi.LoginModule;
-import javax.sql.DataSource;
-
-import org.apache.felix.jaas.LoginModuleFactory;
-import org.apache.felix.scr.annotations.Activate;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.ConfigurationPolicy;
-import org.apache.felix.scr.annotations.Deactivate;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.PropertyOption;
-import org.apache.sling.commons.osgi.PropertiesUtil;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.Constants;
-import org.osgi.framework.Filter;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTracker;
-
-@Component(label = "%jdbc.name",
- description = "%jdbc.description",
- metatype = true,
- name = JdbcLoginModuleFactory.SERVICE_PID,
- configurationFactory = true,
- specVersion = "1.1",
- policy = ConfigurationPolicy.REQUIRE
-)
-public class JdbcLoginModuleFactory implements LoginModuleFactory
-{
-
- public static final String SERVICE_PID = "
org.apache.felix.example.jaas.jdbc.factory";
-
- @Property(value = "required", options = {
- @PropertyOption(name = "required", value = "%jaas.flag.required"),
- @PropertyOption(name = "requisite", value =
"%jaas.flag.requisite"),
- @PropertyOption(name = "sufficient", value =
"%jaas.flag.sufficient"),
- @PropertyOption(name = "optional", value = "%jaas.flag.optional")
})
- static final String JAAS_CONTROL_FLAG = "jaas.controlFlag";
-
- @Property(intValue = 0)
- static final String JAAS_RANKING = "jaas.ranking";
-
- @Property
- private static final String PROP_REALM = "jaas.realmName";
-
- private static final String DEFAULT_PWD_QUERY = "SELECT PASSWORD FROM
USERS WHERE USERNAME=?";
- @Property(value = DEFAULT_PWD_QUERY)
- private static final String PROP_PWD_QUERY = "query.pwd";
- private String passwordQuery;
-
- private static final String DEFAULT_ROLE_QUERY = "SELECT ROLE FROM ROLES
WHERE USERNAME=?";
- @Property(value = DEFAULT_ROLE_QUERY)
- private static final String PROP_ROLE_QUERY = "query.role";
- private String roleQuery;
-
- private static final String DEFAULT_DS_NAME = "test";
- @Property
- private static final String PROP_DS_NAME = "datasourceName";
- private String datasourceName;
- private ServiceTracker dataSourceTracker;
-
- private ServiceRegistration loginModuleFactoryReg;
-
- @Activate
- public void activate(BundleContext context, Map<String, ?> conf)
- throws InvalidSyntaxException
- {
- passwordQuery = PropertiesUtil.toString(conf.get(PROP_PWD_QUERY),
- DEFAULT_PWD_QUERY);
- roleQuery = PropertiesUtil.toString(conf.get(PROP_ROLE_QUERY),
DEFAULT_ROLE_QUERY);
- datasourceName = PropertiesUtil.toString(conf.get(PROP_DS_NAME),
DEFAULT_DS_NAME);
-
- Filter filter =
context.createFilter("(&(objectClass=javax.sql.DataSource)"
- + "(dataSourceName=" + datasourceName + "))");
- dataSourceTracker = new ServiceTracker(context, filter, null);
- dataSourceTracker.open();
- registerLoginModuleFactory(context, conf);
- }
-
- @Deactivate
- private void deactivate()
- {
- if (loginModuleFactoryReg != null)
- {
- loginModuleFactoryReg.unregister();
- }
-
- if(dataSourceTracker != null)
- {
- dataSourceTracker.close();
- }
- }
-
- private void registerLoginModuleFactory(BundleContext context, Map<String,
?> config)
- {
- Dictionary<String,Object> lmProps = new Hashtable<String,Object>();
-
- String controlFlag =
PropertiesUtil.toString(config.get(JAAS_CONTROL_FLAG),
- "required");
- lmProps.put(LoginModuleFactory.JAAS_CONTROL_FLAG,controlFlag);
- lmProps.put(LoginModuleFactory.JAAS_REALM_NAME,
PropertiesUtil.toString(config.get(PROP_REALM), null));
- lmProps.put(Constants.SERVICE_RANKING,
- PropertiesUtil.toInteger(config.get(JAAS_RANKING), 0));
-
- loginModuleFactoryReg = context.registerService(
- LoginModuleFactory.class.getName(), this, lmProps);
- }
-
- @Override
- public LoginModule createLoginModule()
- {
- return new JdbcLoginModule(
- (DataSource) dataSourceTracker.getService(), passwordQuery,
roleQuery);
- }
-}
diff --git
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/RolePrincipal.java
b/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/RolePrincipal.java
deleted file mode 100644
index ddc835ccfe..0000000000
---
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/RolePrincipal.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.example.jaas.jdbc;
-
-import java.security.Principal;
-
-public class RolePrincipal implements Principal {
-
- private final String name;
-
- public RolePrincipal(String name) {
- assert name != null;
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof RolePrincipal)) return false;
-
- RolePrincipal that = (RolePrincipal) o;
-
- if (name != null ? !name.equals(that.name) : that.name != null) return
false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return name != null ? name.hashCode() : 0;
- }
-
- @Override
- public String toString() {
- return "RolePrincipal[" + name + "]";
- }
-
-}
diff --git
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/UserPrincipal.java
b/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/UserPrincipal.java
deleted file mode 100644
index 55b00518b3..0000000000
---
a/examples/jaas/lm-jdbc/src/main/java/org/apache/felix/example/jaas/jdbc/UserPrincipal.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.example.jaas.jdbc;
-
-import java.security.Principal;
-
-public class UserPrincipal implements Principal {
-
- private final String name;
-
- public UserPrincipal(String name) {
- assert name != null;
- this.name = name;
- }
-
- public String getName() {
- return name;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) return true;
- if (!(o instanceof UserPrincipal)) return false;
-
- UserPrincipal that = (UserPrincipal) o;
-
- if (name != null ? !name.equals(that.name) : that.name != null) return
false;
-
- return true;
- }
-
- @Override
- public int hashCode() {
- return name != null ? name.hashCode() : 0;
- }
-
- @Override
- public String toString() {
- return "UserPrincipal[" + name + "]";
- }
-
-}
diff --git
a/examples/jaas/lm-jdbc/src/main/resources/OSGI-INF/metatype/metatype.properties
b/examples/jaas/lm-jdbc/src/main/resources/OSGI-INF/metatype/metatype.properties
deleted file mode 100644
index 13899d4970..0000000000
---
a/examples/jaas/lm-jdbc/src/main/resources/OSGI-INF/metatype/metatype.properties
+++ /dev/null
@@ -1,50 +0,0 @@
-#
-# 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
-
-jdbc.name=Apache Felix JDBC LoginModule Example
-jdbc.description=Configuration details for connecting to Database
-
-#JAAS Stuff
-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
-
-datasourceName.name = Datasource Name
-datasourceName.description = Name of the datasource
-
-query.role.name= Role Query
-query.role.description = Query to fetch user roles
-
-query.pwd.name = Password Query
-query.pwd.description = Query to fetch user password
-
diff --git a/examples/jaas/pom.xml b/examples/jaas/pom.xml
deleted file mode 100644
index d94c67b9c4..0000000000
--- a/examples/jaas/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--
-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.
--->
-<project>
- <parent>
- <groupId>org.apache.felix</groupId>
- <artifactId>felix-parent</artifactId>
- <version>7</version>
- <relativePath>../../pom/pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <packaging>pom</packaging>
- <name>Apache Felix Examples: JAAS</name>
- <groupId>org.apache.felix.example</groupId>
- <artifactId>jaas-reactor</artifactId>
- <version>0.0.1-SNAPSHOT</version>
-
-
- <modules>
- <module>lm-config</module>
- <module>lm-jdbc</module>
- <module>jdbc-h2</module>
- <module>app</module>
- <module>launcher</module>
- </modules>
-
-</project>