You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2014/02/21 19:22:55 UTC
[6/7] git commit: [KARAF-2760]monitor etc/user.properties change with
felix FileInstaller (cherry picked from commit
2cf592365f7a6a100107fda7bf40b6e8f15e95d2)
[KARAF-2760]monitor etc/user.properties change with felix FileInstaller
(cherry picked from commit 2cf592365f7a6a100107fda7bf40b6e8f15e95d2)
Conflicts:
jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
(cherry picked from commit a60cec5bdc0c7b2e8777a03937d3409f90db8ca9)
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/4d7f393d
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/4d7f393d
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/4d7f393d
Branch: refs/heads/karaf-3.0.x
Commit: 4d7f393d6421110d69500d287c30bb73a3dce471
Parents: c3e198a
Author: Freeman Fang <fr...@gmail.com>
Authored: Tue Feb 18 14:03:11 2014 +0800
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Feb 21 19:17:34 2014 +0100
----------------------------------------------------------------------
jaas/modules/pom.xml | 5 ++
.../modules/properties/PropertiesInstaller.java | 54 ++++++++++++++++++++
.../properties/PropertiesLoginModule.java | 14 +++--
3 files changed, 70 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/4d7f393d/jaas/modules/pom.xml
----------------------------------------------------------------------
diff --git a/jaas/modules/pom.xml b/jaas/modules/pom.xml
index e45cddf..2e3df63 100644
--- a/jaas/modules/pom.xml
+++ b/jaas/modules/pom.xml
@@ -55,6 +55,11 @@
</dependency>
<dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.fileinstall</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>provided</scope>
http://git-wip-us.apache.org/repos/asf/karaf/blob/4d7f393d/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesInstaller.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesInstaller.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesInstaller.java
new file mode 100644
index 0000000..730e97e
--- /dev/null
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesInstaller.java
@@ -0,0 +1,54 @@
+package org.apache.karaf.jaas.modules.properties;
+
+import java.io.File;
+
+import org.apache.felix.fileinstall.ArtifactInstaller;
+import org.apache.felix.utils.properties.Properties;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class PropertiesInstaller implements ArtifactInstaller {
+
+ private final Logger LOGGER = LoggerFactory.getLogger(PropertiesInstaller.class);
+
+ private String usersFileName;
+
+ private File usersFile;
+
+
+ PropertiesLoginModule propertiesLoginModule;
+
+
+ public PropertiesInstaller(PropertiesLoginModule propertiesLoginModule, String usersFile) {
+ this.propertiesLoginModule = propertiesLoginModule;
+ this.usersFileName = usersFile;
+ }
+
+ public boolean canHandle(File artifact) {
+ if (usersFile == null) {
+ usersFile = new File(usersFileName);
+ }
+ return artifact.getName().endsWith(usersFile.getName());
+ }
+
+ public void install(File artifact) throws Exception {
+ if (usersFile == null) {
+ usersFile = new File(usersFileName);
+ }
+ Properties userProperties = new Properties(usersFile);
+ this.propertiesLoginModule.encryptedPassword(userProperties);
+ }
+
+ public void update(File artifact) throws Exception {
+ if (usersFile == null) {
+ usersFile = new File(usersFileName);
+ }
+ Properties userProperties = new Properties(usersFile);
+ this.propertiesLoginModule.encryptedPassword(userProperties);
+ }
+
+ public void uninstall(File artifact) throws Exception {
+ LOGGER.warn("the users.properties was removed");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/karaf/blob/4d7f393d/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
index e618f93..b7d375d 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/properties/PropertiesLoginModule.java
@@ -48,13 +48,20 @@ public class PropertiesLoginModule extends AbstractKarafLoginModule {
static final String USER_FILE = "users";
private String usersFile;
-
+
+ private PropertiesInstaller propertiesInstaller;
+
+
public void initialize(Subject sub, CallbackHandler handler, Map sharedState, Map options) {
super.initialize(sub,handler,options);
usersFile = (String) options.get(USER_FILE);
if (debug) {
LOGGER.debug("Initialized debug={} usersFile={}", debug, usersFile);
}
+ propertiesInstaller = new PropertiesInstaller(this, usersFile);
+ if (this.bundleContext != null) {
+ this.bundleContext.registerService("org.apache.felix.fileinstall.ArtifactInstaller", propertiesInstaller, null);
+ }
}
public boolean login() throws LoginException {
@@ -74,7 +81,7 @@ public class PropertiesLoginModule extends AbstractKarafLoginModule {
}
//encrypt all password if necessary
- EncryptedPassword(users);
+ encryptedPassword(users);
Callback[] callbacks = new Callback[2];
@@ -176,7 +183,8 @@ public class PropertiesLoginModule extends AbstractKarafLoginModule {
return true;
}
- private void EncryptedPassword(Properties users) {
+
+ void encryptedPassword(Properties users) {
for (Object userName : users.keySet()) {
String user = (String)userName;
String userInfos = null;