You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by dr...@apache.org on 2017/08/18 16:00:58 UTC
[2/4] brooklyn-server git commit: Updates karaf to 4.1.1
Updates karaf to 4.1.1
* Jetty update to 9.3.14.v20161028
Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/44964473
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/44964473
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/44964473
Branch: refs/heads/master
Commit: 44964473a3ddbf738b384e68af29ebc8805ea239
Parents: 85e1e72
Author: Mark McKenna <m4...@gmail.com>
Authored: Thu Jul 20 15:05:20 2017 +0100
Committer: Mark McKenna <m4...@gmail.com>
Committed: Fri Aug 18 16:17:36 2017 +0100
----------------------------------------------------------------------
pom.xml | 4 +-
.../rest/security/jaas/BrooklynLoginModule.java | 82 +++++++++++---------
2 files changed, 47 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/44964473/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6bc718a..a0aef46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -136,7 +136,7 @@
<sshj.version>0.12.0</sshj.version>
<felix.framework.version>5.6.1</felix.framework.version>
<reflections.version>0.9.9-RC1</reflections.version>
- <jetty.version>9.2.13.v20150730</jetty.version>
+ <jetty.version>9.3.14.v20161028</jetty.version>
<jetty-schemas.version>3.1.M0</jetty-schemas.version>
<airline.version>0.7</airline.version>
<mockwebserver.version>20121111</mockwebserver.version>
@@ -170,7 +170,7 @@
<maxmind.version>2.8.0-rc1</maxmind.version>
<maxmind-db.version>1.2.1</maxmind-db.version>
<winrm4j.version>0.5.0</winrm4j.version>
- <karaf.version>4.0.8</karaf.version>
+ <karaf.version>4.1.1</karaf.version>
<karaf.plugin.version>${karaf.version}</karaf.plugin.version>
<felix-osgi-compendium.version>1.4.0</felix-osgi-compendium.version>
<kubernetes-client.version>1.4.27</kubernetes-client.version>
http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/44964473/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/security/jaas/BrooklynLoginModule.java
----------------------------------------------------------------------
diff --git a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/security/jaas/BrooklynLoginModule.java b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/security/jaas/BrooklynLoginModule.java
index 702f4fc..32684bd 100644
--- a/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/security/jaas/BrooklynLoginModule.java
+++ b/rest/rest-resources/src/main/java/org/apache/brooklyn/rest/security/jaas/BrooklynLoginModule.java
@@ -18,26 +18,6 @@
*/
package org.apache.brooklyn.rest.security.jaas;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Collection;
-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.FailedLoginException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-import javax.servlet.http.HttpSession;
-
import org.apache.brooklyn.api.mgmt.ManagementContext;
import org.apache.brooklyn.config.StringConfigMap;
import org.apache.brooklyn.rest.BrooklynWebConfig;
@@ -46,27 +26,48 @@ import org.apache.brooklyn.rest.security.provider.SecurityProvider;
import org.apache.brooklyn.util.exceptions.Exceptions;
import org.apache.brooklyn.util.text.Strings;
import org.eclipse.jetty.server.HttpChannel;
+import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+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.FailedLoginException;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Optional;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
// http://docs.oracle.com/javase/7/docs/technotes/guides/security/jaas/JAASLMDevGuide.html
/**
* <p>
- * JAAS module delegating authentication to the {@link SecurityProvider} implementation
+ * JAAS module delegating authentication to the {@link SecurityProvider} implementation
* configured in {@literal brooklyn.properties}, key {@literal brooklyn.webconsole.security.provider}.
- *
+ * <p>
* <p>
* If used in an OSGi environment only implementations visible from {@literal brooklyn-rest-server} are usable by default.
* To use a custom security provider add the following configuration to the its bundle in {@literal src/main/resources/OSGI-INF/bundle/security-provider.xml}:
- *
+ * <p>
* <pre>
* {@code
- *<?xml version="1.0" encoding="UTF-8"?>
- *<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
* xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.1.0"
* xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
*
@@ -78,8 +79,8 @@ import org.slf4j.LoggerFactory;
* </jaas:module>
* </jaas:config>
*
- *</blueprint>
- *}
+ * </blueprint>
+ * }
* </pre>
*/
// Needs an explicit "org.apache.karaf.jaas.config" Import-Package in the manifest!
@@ -96,34 +97,41 @@ public class BrooklynLoginModule implements LoginModule {
private static class BasicPrincipal implements Principal {
private String name;
+
public BasicPrincipal(String name) {
this.name = checkNotNull(name, "name");
}
+
@Override
public String getName() {
return name;
}
+
@Override
public int hashCode() {
return name.hashCode();
}
+
@Override
public boolean equals(Object obj) {
if (obj instanceof BasicPrincipal) {
- return name.equals(((BasicPrincipal)obj).name);
+ return name.equals(((BasicPrincipal) obj).name);
}
return false;
}
+
@Override
public String toString() {
- return getClass().getSimpleName() + "[" +name + "]";
+ return getClass().getSimpleName() + "[" + name + "]";
}
}
+
public static class UserPrincipal extends BasicPrincipal {
public UserPrincipal(String name) {
super(name);
}
}
+
public static class RolePrincipal extends BasicPrincipal {
public RolePrincipal(String name) {
super(name);
@@ -132,7 +140,9 @@ public class BrooklynLoginModule implements LoginModule {
public static final String PROPERTY_BUNDLE_SYMBOLIC_NAME = BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName() + ".symbolicName";
public static final String PROPERTY_BUNDLE_VERSION = BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName() + ".version";
- /** SecurityProvider doesn't know about roles, just attach one by default. Use the one specified here or DEFAULT_ROLE */
+ /**
+ * SecurityProvider doesn't know about roles, just attach one by default. Use the one specified here or DEFAULT_ROLE
+ */
public static final String PROPERTY_ROLE = BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName() + ".role";
public static final String DEFAULT_ROLE = "webconsole";
@@ -195,7 +205,7 @@ public class BrooklynLoginModule implements LoginModule {
if (bundles.isEmpty()) {
throw new IllegalStateException("No bundle " + symbolicName + ":" + version + " found");
} else if (bundles.size() > 1) {
- log.warn("Found multiple bundles matching symbolicName " + symbolicName + " and version " + version +
+ log.warn("Found multiple bundles matching symbolicName " + symbolicName + " and version " + version +
" while trying to load security provider " + className + ". Will use first one that loads the class successfully.");
}
provider = tryLoadClass(className, bundles);
@@ -347,12 +357,10 @@ public class BrooklynLoginModule implements LoginModule {
}
private Request getJettyRequest() {
- HttpChannel<?> channel = HttpChannel.getCurrentHttpChannel();
- if (channel != null) {
- return channel.getRequest();
- } else {
- return null;
- }
+ return Optional.ofNullable(HttpConnection.getCurrentConnection())
+ .map(HttpConnection::getHttpChannel)
+ .map(HttpChannel::getRequest)
+ .orElse(null);
}
}