This is an automated email from the ASF dual-hosted git repository.

heneveld pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brooklyn-dist.git

commit 288b87db8e3407dfeda23f2cc6c0eb1da58e6457
Author: Alex Heneveld <[email protected]>
AuthorDate: Wed Jan 16 00:02:32 2019 +0000

    fix integration test refs to jaas login
    
    they still test rest login, and have added ui page logins
    
    these work, amazingly with the pax exam magic
---
 .../core/catalog/internal/DefaultBomLoadTest.java  | 21 +++--
 .../brooklyn/launcher/osgi/OsgiLauncherTest.java   |  9 +-
 .../brooklyn/security/CustomSecurityProvider.java  |  9 +-
 .../security/CustomSecurityProviderTest.java       | 99 +++++-----------------
 .../security/StockSecurityProviderTest.java        | 83 +++++-------------
 .../src/test/resources/custom-security-bp.xml      | 40 ---------
 karaf/pom.xml                                      |  2 +-
 7 files changed, 69 insertions(+), 194 deletions(-)

diff --git 
a/karaf/itest/src/test/java/org/apache/brooklyn/core/catalog/internal/DefaultBomLoadTest.java
 
b/karaf/itest/src/test/java/org/apache/brooklyn/core/catalog/internal/DefaultBomLoadTest.java
index 31d500e..64148fc 100644
--- 
a/karaf/itest/src/test/java/org/apache/brooklyn/core/catalog/internal/DefaultBomLoadTest.java
+++ 
b/karaf/itest/src/test/java/org/apache/brooklyn/core/catalog/internal/DefaultBomLoadTest.java
@@ -19,8 +19,14 @@
 package org.apache.brooklyn.core.catalog.internal;
 
 
-import org.apache.brooklyn.api.catalog.CatalogItem;
+import static org.apache.brooklyn.KarafTestUtils.defaultOptionsWith;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import javax.inject.Inject;
+
 import org.apache.brooklyn.api.mgmt.ManagementContext;
+import org.apache.brooklyn.api.typereg.RegisteredType;
 import org.apache.brooklyn.core.BrooklynVersion;
 import org.apache.brooklyn.test.IntegrationTest;
 import org.apache.karaf.features.BootFinished;
@@ -34,12 +40,6 @@ import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerMethod;
 import org.ops4j.pax.exam.util.Filter;
 
-import javax.inject.Inject;
-
-import static org.apache.brooklyn.KarafTestUtils.defaultOptionsWith;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerMethod.class)
 @Category(IntegrationTest.class)
@@ -69,9 +69,8 @@ public class DefaultBomLoadTest {
     @Test
     @Category(IntegrationTest.class)
     public void shouldHaveLoadedDefaultCatalogBom() throws Exception {
-        final CatalogItem<?, ?> catalogItem = managementContext.getCatalog()
-            .getCatalogItem("server-template", BrooklynVersion.get());  // 
from brooklyn-software-base catalog.bom
-        assertNotNull(catalogItem);
-        assertEquals("Template: Server", catalogItem.getDisplayName());
+        RegisteredType item = 
managementContext.getTypeRegistry().get("server-template", 
BrooklynVersion.get());
+        assertNotNull(item);
+        assertEquals("Template: Server", item.getDisplayName());
     }
 }
diff --git 
a/karaf/itest/src/test/java/org/apache/brooklyn/launcher/osgi/OsgiLauncherTest.java
 
b/karaf/itest/src/test/java/org/apache/brooklyn/launcher/osgi/OsgiLauncherTest.java
index 4623860..7da2436 100644
--- 
a/karaf/itest/src/test/java/org/apache/brooklyn/launcher/osgi/OsgiLauncherTest.java
+++ 
b/karaf/itest/src/test/java/org/apache/brooklyn/launcher/osgi/OsgiLauncherTest.java
@@ -20,7 +20,7 @@ package org.apache.brooklyn.launcher.osgi;
 
 import static org.apache.brooklyn.KarafTestUtils.defaultOptionsWith;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
 import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
 import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.features;
 
@@ -46,12 +46,16 @@ import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
 import org.ops4j.pax.exam.spi.reactors.PerClass;
 import org.ops4j.pax.exam.util.Filter;
 import org.osgi.service.cm.ConfigurationAdmin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 @Category(IntegrationTest.class)
 public class OsgiLauncherTest {
 
+    private static final Logger log = 
LoggerFactory.getLogger(OsgiLauncherTest.class);
+    
     private static final String TEST_VALUE_RUNTIME = "test.value";
     private static final String TEST_KEY_RUNTIME = "test.key";
     private static final String TEST_VALUE_IN_CFG = "test.cfg";
@@ -94,11 +98,12 @@ public class OsgiLauncherTest {
 
     @Test
     public void testConfig() throws IOException {
-        
assertFalse(mgmt.getConfig().getAllConfig().containsKey(TEST_KEY_RUNTIME));
+        assertNull(mgmt.getConfig().getFirst(TEST_KEY_RUNTIME));
         org.osgi.service.cm.Configuration config = 
configAdmin.getConfiguration("brooklyn", null);
         assertEquals(config.getProperties().get(TEST_KEY_IN_CFG), 
TEST_VALUE_IN_CFG);
         config.getProperties().put(TEST_KEY_RUNTIME, TEST_VALUE_RUNTIME);
         config.update();
+        log.info("Waiting for Brooklyn mgmt "+mgmt+" to see updated value...");
         Asserts.succeedsEventually(new Runnable() {
             @Override
             public void run() {
diff --git 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProvider.java
 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProvider.java
index ca9ac0e..50195bf 100644
--- 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProvider.java
+++ 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProvider.java
@@ -24,10 +24,17 @@ import 
org.apache.brooklyn.rest.security.provider.AbstractSecurityProvider;
 import org.apache.brooklyn.rest.security.provider.SecurityProvider;
 
 public class CustomSecurityProvider extends AbstractSecurityProvider 
implements SecurityProvider {
+    
+    static final String USER = "custom";
 
     @Override
     public boolean authenticate(HttpSession session, String user, String 
password) {
-        return "custom".equals(user);
+        return USER.equals(user);
+    }
+
+    @Override
+    public boolean requiresUserPass() {
+        return true;
     }
 
 }
diff --git 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProviderTest.java
 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProviderTest.java
index bfed1b8..cbd330e 100644
--- 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProviderTest.java
+++ 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/CustomSecurityProviderTest.java
@@ -19,32 +19,19 @@
 package org.apache.brooklyn.security;
 
 import static org.apache.brooklyn.KarafTestUtils.defaultOptionsWith;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertEquals;
 import static org.ops4j.pax.exam.CoreOptions.streamBundle;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
 
 import java.io.IOException;
 
 import javax.inject.Inject;
-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.AppConfigurationEntry;
-import javax.security.auth.login.FailedLoginException;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
 
 import org.apache.brooklyn.api.mgmt.ManagementContext;
-import org.apache.brooklyn.core.internal.BrooklynProperties;
 import org.apache.brooklyn.rest.BrooklynWebConfig;
-import org.apache.brooklyn.rest.security.jaas.BrooklynLoginModule;
-import org.apache.brooklyn.test.Asserts;
 import org.apache.brooklyn.test.IntegrationTest;
+import org.apache.brooklyn.util.text.Identifiers;
+import org.apache.http.HttpStatus;
 import org.apache.karaf.features.BootFinished;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
@@ -57,13 +44,13 @@ import org.ops4j.pax.exam.util.Filter;
 import org.ops4j.pax.tinybundles.core.TinyBundles;
 import org.osgi.framework.Constants;
 
-import com.google.common.collect.ImmutableSet;
-
 @RunWith(PaxExam.class)
 @ExamReactorStrategy(PerClass.class)
 @Category(IntegrationTest.class)
 public class CustomSecurityProviderTest {
-    private static final String WEBCONSOLE_REALM = "webconsole";
+    
+    private static final String NEW_SECURITY_TEST_BUNDLE = 
"org.apache.brooklyn.test.security";
+    private static final String NEW_SECURITY_TEST_BUNDLE_VERSION = "1.0.0";
 
     /**
      * To make sure the tests run only when the boot features are fully
@@ -82,76 +69,36 @@ public class CustomSecurityProviderTest {
         return defaultOptionsWith(
             streamBundle(TinyBundles.bundle()
                 .add(CustomSecurityProvider.class)
-                .add("OSGI-INF/blueprint/security.xml", 
CustomSecurityProviderTest.class.getResource("/custom-security-bp.xml"))
                 .set(Constants.BUNDLE_MANIFESTVERSION, "2") // defaults to 1 
which doesn't work
-                .set(Constants.BUNDLE_SYMBOLICNAME, 
"org.apache.brooklyn.test.security")
-                .set(Constants.BUNDLE_VERSION, "1.0.0")
+                .set(Constants.BUNDLE_SYMBOLICNAME, NEW_SECURITY_TEST_BUNDLE)
+                .set(Constants.BUNDLE_VERSION, 
NEW_SECURITY_TEST_BUNDLE_VERSION)
                 .set(Constants.DYNAMICIMPORT_PACKAGE, "*")
                 .set(Constants.EXPORT_PACKAGE, 
CustomSecurityProvider.class.getPackage().getName())
-                .build())
+                .build()),
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName(), 
CustomSecurityProvider.class.getCanonicalName()),
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                BrooklynWebConfig.SECURITY_PROVIDER_BUNDLE.getName(), 
NEW_SECURITY_TEST_BUNDLE),
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                BrooklynWebConfig.SECURITY_PROVIDER_BUNDLE_VERSION.getName(), 
NEW_SECURITY_TEST_BUNDLE_VERSION)
             // Uncomment this for remote debugging the tests on port 5005
             // ,KarafDistributionOption.debugConfiguration()
         );
     }
 
-    @Before
-    public void setUp() {
-        // Works only before initializing the security provider (i.e. before 
first use)
-        // TODO Dirty hack to inject the needed properties. Improve once 
managementContext is configurable.
-        // Alternatively re-register a test managementContext service (how?)
-        BrooklynProperties brooklynProperties = 
(BrooklynProperties)managementContext.getConfig();
-        
brooklynProperties.put(BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName(), 
CustomSecurityProvider.class.getCanonicalName());
-    }
-
-    @Test(expected = FailedLoginException.class)
-    public void checkLoginFails() throws LoginException {
-        assertRealmRegisteredEventually(WEBCONSOLE_REALM);
-        doLogin("invalid", "auth");
-    }
-
     @Test
-    public void checkLoginSucceeds() throws LoginException {
-        assertRealmRegisteredEventually(WEBCONSOLE_REALM);
-        String user = "custom";
-        LoginContext lc = doLogin(user, "password");
-        Subject subject = lc.getSubject();
-        assertNotNull(subject);
-        assertEquals(subject.getPrincipals(), ImmutableSet.of(
-                new BrooklynLoginModule.UserPrincipal(user),
-                new BrooklynLoginModule.RolePrincipal("users")));
+    public void checkRestSecurityNoUserFails() throws IOException {
+        StockSecurityProviderTest.checkSecurity(null, null, 
HttpStatus.SC_UNAUTHORIZED);
     }
 
-    private LoginContext doLogin(final String username, final String password) 
throws LoginException {
-        assertRealmRegisteredEventually(WEBCONSOLE_REALM);
-        LoginContext lc = new LoginContext(WEBCONSOLE_REALM, new 
CallbackHandler() {
-            @Override
-            public void handle(Callback[] callbacks) throws IOException, 
UnsupportedCallbackException {
-                for (int i = 0; i < callbacks.length; i++) {
-                    Callback callback = callbacks[i];
-                    if (callback instanceof PasswordCallback) {
-                        PasswordCallback passwordCallback = 
(PasswordCallback)callback;
-                        passwordCallback.setPassword(password.toCharArray());
-                    } else if (callback instanceof NameCallback) {
-                        NameCallback nameCallback = (NameCallback)callback;
-                        nameCallback.setName(username);
-                    }
-                }
-            }
-        });
-        lc.login();
-        return lc;
+    @Test
+    public void checkRestSecurityWrongUserFails() throws IOException {
+        StockSecurityProviderTest.checkSecurity("admin", "password", 
HttpStatus.SC_UNAUTHORIZED);
     }
 
-    private void assertRealmRegisteredEventually(final String userPassRealm) {
-        // Need to wait a bit for the realm to get registered, any OSGi way to 
do this?
-        Asserts.succeedsEventually(new Runnable() {
-            @Override
-            public void run() {
-                javax.security.auth.login.Configuration initialConfig = 
javax.security.auth.login.Configuration.getConfiguration();
-                AppConfigurationEntry[] realm = 
initialConfig.getAppConfigurationEntry(userPassRealm);
-                assertNotNull(realm);
-            }
-        });
+    @Test
+    public void checkRestSecuritySucceeds() throws IOException {
+        StockSecurityProviderTest.checkSecurity(CustomSecurityProvider.USER, 
"any-password-"+Identifiers.makeRandomId(2), HttpStatus.SC_OK);
     }
 
 }
diff --git 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/StockSecurityProviderTest.java
 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/StockSecurityProviderTest.java
index 00d0925..dbd70f7 100644
--- 
a/karaf/itest/src/test/java/org/apache/brooklyn/security/StockSecurityProviderTest.java
+++ 
b/karaf/itest/src/test/java/org/apache/brooklyn/security/StockSecurityProviderTest.java
@@ -20,21 +20,12 @@ package org.apache.brooklyn.security;
 
 import static org.apache.brooklyn.KarafTestUtils.defaultOptionsWith;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static 
org.ops4j.pax.exam.karaf.options.KarafDistributionOption.editConfigurationFilePut;
 
 import java.io.IOException;
 import java.util.concurrent.Callable;
 
 import javax.inject.Inject;
-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.AppConfigurationEntry;
-import javax.security.auth.login.FailedLoginException;
-import javax.security.auth.login.LoginContext;
-import javax.security.auth.login.LoginException;
 
 import org.apache.brooklyn.api.mgmt.ManagementContext;
 import org.apache.brooklyn.core.internal.BrooklynProperties;
@@ -69,7 +60,6 @@ import org.ops4j.pax.exam.util.Filter;
 @Category(IntegrationTest.class)
 public class StockSecurityProviderTest {
 
-    private static final String WEBCONSOLE_REALM = "webconsole";
     private static final String USER = "admin";
     private static final String PASSWORD = "password";
 
@@ -88,6 +78,13 @@ public class StockSecurityProviderTest {
     @Configuration
     public static Option[] configuration() throws Exception {
         return defaultOptionsWith(
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName(), 
ExplicitUsersSecurityProvider.class.getCanonicalName()),
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                
BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName()+".users", USER),
+            editConfigurationFilePut("etc/brooklyn.cfg", 
+                
BrooklynWebConfig.SECURITY_PROVIDER_CLASSNAME.getName()+".user."+USER, PASSWORD)
+
             // Uncomment this for remote debugging the tests on port 5005
             // KarafDistributionOption.debugConfiguration()
         );
@@ -99,28 +96,17 @@ public class StockSecurityProviderTest {
         addUser(USER, PASSWORD);
     }
 
-    @Test(expected = FailedLoginException.class)
-    public void checkLoginFails() throws LoginException {
-        doLogin("invalid", "auth");
-    }
-
-    @Test
-    public void checkLoginSucceeds() throws LoginException {
-        LoginContext lc = doLogin(USER, PASSWORD);
-        assertNotNull(lc.getSubject());
-    }
-
     @Test
     public void checkRestSecurityFails() throws IOException {
-        checkRestSecurity(null, null, HttpStatus.SC_UNAUTHORIZED);
+        checkSecurity(null, null, HttpStatus.SC_UNAUTHORIZED);
     }
 
     @Test
     public void checkRestSecuritySucceeds() throws IOException {
-        checkRestSecurity(USER, PASSWORD, HttpStatus.SC_OK);
+        checkSecurity(USER, PASSWORD, HttpStatus.SC_OK);
     }
 
-    private void checkRestSecurity(String username, String password, final int 
code) throws IOException {
+    static void checkSecurity(String username, String password, final int 
code) throws IOException {
         CredentialsProvider credentialsProvider = new 
BasicCredentialsProvider();
         if (username != null && password != null) {
             credentialsProvider.setCredentials(AuthScope.ANY, new 
UsernamePasswordCredentials(username, password));
@@ -130,17 +116,21 @@ public class StockSecurityProviderTest {
             Asserts.succeedsEventually(new Callable<Void>() {
                 @Override
                 public Void call() throws Exception {
-                    assertResponseEquals(client, code);
+                    assertResponseEquals(urlBase()+"/v1/server/ha/state", 
client, code);
+                    assertResponseEquals(urlBase()+"/", client, code);
+                    assertResponseEquals(urlBase()+"/brooklyn-ui-catalog", 
client, code);
                     return null;
                 }
             });
         }
     }
 
-    private void assertResponseEquals(CloseableHttpClient httpclient, int 
code) throws IOException, ClientProtocolException {
-        // TODO get this dynamically (from CXF service?)
-        // TODO port is static, should make it dynamic
-        HttpGet httpGet = new 
HttpGet("http://localhost:8081/v1/server/ha/state";);
+    // TODO get this dynamically (from CXF service?)
+    // TODO port is static, should make it dynamic
+    private static String urlBase() { return "http://localhost:8081";; }
+    
+    private static void assertResponseEquals(String url, CloseableHttpClient 
httpclient, int code) throws IOException, ClientProtocolException {
+        HttpGet httpGet = new HttpGet(url);
         try (CloseableHttpResponse response = httpclient.execute(httpGet)) {
             assertEquals(code, response.getStatusLine().getStatusCode());
         }
@@ -156,37 +146,4 @@ public class StockSecurityProviderTest {
         brooklynProperties.put(BrooklynWebConfig.PASSWORD_FOR_USER(username), 
password);
     }
 
-    private LoginContext doLogin(final String username, final String password) 
throws LoginException {
-        assertRealmRegisteredEventually(WEBCONSOLE_REALM);
-        LoginContext lc = new LoginContext(WEBCONSOLE_REALM, new 
CallbackHandler() {
-            @Override
-            public void handle(Callback[] callbacks) throws IOException, 
UnsupportedCallbackException {
-                for (int i = 0; i < callbacks.length; i++) {
-                    Callback callback = callbacks[i];
-                    if (callback instanceof PasswordCallback) {
-                        PasswordCallback passwordCallback = 
(PasswordCallback)callback;
-                        passwordCallback.setPassword(password.toCharArray());
-                    } else if (callback instanceof NameCallback) {
-                        NameCallback nameCallback = (NameCallback)callback;
-                        nameCallback.setName(username);
-                    }
-                }
-            }
-        });
-        lc.login();
-        return lc;
-    }
-
-    private void assertRealmRegisteredEventually(final String userPassRealm) {
-        // Need to wait a bit for the realm to get registered, any OSGi way to 
do this?
-        Asserts.succeedsEventually(new Runnable() {
-            @Override
-            public void run() {
-                javax.security.auth.login.Configuration initialConfig = 
javax.security.auth.login.Configuration.getConfiguration();
-                AppConfigurationEntry[] realm = 
initialConfig.getAppConfigurationEntry(userPassRealm);
-                assertNotNull(realm);
-            }
-        });
-    }
-
 }
diff --git a/karaf/itest/src/test/resources/custom-security-bp.xml 
b/karaf/itest/src/test/resources/custom-security-bp.xml
deleted file mode 100644
index ace4454..0000000
--- a/karaf/itest/src/test/resources/custom-security-bp.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright 2015 The Apache Software Foundation.
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
--->
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
-           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-           
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0";
-           xmlns:jaxws="http://cxf.apache.org/blueprint/jaxws";
-           xmlns:jaxrs="http://cxf.apache.org/blueprint/jaxrs";
-           xmlns:cxf="http://cxf.apache.org/blueprint/core";
-           xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0";
-           xsi:schemaLocation="
-             http://www.osgi.org/xmlns/blueprint/v1.0.0 
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
-             http://cxf.apache.org/blueprint/jaxws 
http://cxf.apache.org/schemas/blueprint/jaxws.xsd
-             http://cxf.apache.org/blueprint/jaxrs 
http://cxf.apache.org/schemas/blueprint/jaxrs.xsd
-             http://cxf.apache.org/blueprint/core 
http://cxf.apache.org/schemas/blueprint/core.xsd
-             http://karaf.apache.org/xmlns/jaas/v1.0.0 
http://karaf.apache.org/xmlns/jaas/v1.0.0
-             ">
-
-    <jaas:config name="webconsole" rank="1">
-        <jaas:module 
className="org.apache.brooklyn.rest.security.jaas.BrooklynLoginModule"
-                     flags="required">
-            
brooklyn.webconsole.security.provider.symbolicName=org.apache.brooklyn.test.security
-            brooklyn.webconsole.security.provider.version=1.0.0
-            brooklyn.webconsole.security.provider.role=users
-        </jaas:module>
-    </jaas:config>
-</blueprint>
diff --git a/karaf/pom.xml b/karaf/pom.xml
index 58109c5..19d3c4e 100644
--- a/karaf/pom.xml
+++ b/karaf/pom.xml
@@ -42,7 +42,7 @@
         
<lifecycle-mapping-plugin.version>1.0.0</lifecycle-mapping-plugin.version>
 
         <!-- pax-exam -->
-        <pax.exam.version>4.11.0</pax.exam.version>
+        <pax.exam.version>4.13.1</pax.exam.version>
         <pax.url.version>2.5.2</pax.url.version>
 
         <ops4j.base.version>1.5.0</ops4j.base.version>

Reply via email to