You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2017/08/16 16:09:19 UTC
[1/3] karaf git commit: Cleanup jdbc tests
Repository: karaf
Updated Branches:
refs/heads/master fd7439664 -> b57bceae1
Cleanup jdbc tests
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/c79e2ba2
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/c79e2ba2
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/c79e2ba2
Branch: refs/heads/master
Commit: c79e2ba2b30349f220d2d2affb1d1aed410042fb
Parents: fd74396
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Wed Aug 16 15:53:10 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Wed Aug 16 15:53:10 2017 +0200
----------------------------------------------------------------------
.../karaf/jaas/modules/jdbc/JDBCUtils.java | 4 +-
.../jaas/modules/jdbc/JdbcLoginModuleTest.java | 116 ++++++++-----------
2 files changed, 52 insertions(+), 68 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/c79e2ba2/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
index 4e1cda8..5be25b0 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/jdbc/JDBCUtils.java
@@ -75,9 +75,9 @@ public final class JDBCUtils {
if (tokens.length > 1) {
filter = tokens[1];
}
- ServiceReference[] references = bc.getServiceReferences(clazz, filter);
+ ServiceReference<?>[] references = bc.getServiceReferences(clazz, filter);
if (references != null) {
- ServiceReference ref = references[0];
+ ServiceReference<?> ref = references[0];
Object ds = bc.getService(ref);
bc.ungetService(ref);
return ds;
http://git-wip-us.apache.org/repos/asf/karaf/blob/c79e2ba2/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
index cd960ed..66eebb6 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/jdbc/JdbcLoginModuleTest.java
@@ -24,7 +24,7 @@ import java.util.Map;
import javax.security.auth.Subject;
import javax.sql.DataSource;
-import org.apache.derby.jdbc.EmbeddedDataSource40;
+import org.apache.derby.jdbc.EmbeddedDataSource;
import org.apache.karaf.jaas.boot.principal.GroupPrincipal;
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
@@ -42,54 +42,42 @@ import static org.junit.Assert.assertTrue;
public class JdbcLoginModuleTest {
- private EmbeddedDataSource40 dataSource;
+ private EmbeddedDataSource dataSource;
private Map<String, Object> options;
+ @SuppressWarnings("unchecked")
@Before
public void setUp() throws Exception {
System.setProperty("derby.stream.error.file", "target/derby.log");
// Create datasource
- dataSource = new EmbeddedDataSource40();
+ dataSource = new EmbeddedDataSource();
dataSource.setDatabaseName("memory:db");
dataSource.setCreateDatabase("create");
// Delete tables
try (Connection connection = dataSource.getConnection()) {
connection.setAutoCommit(true);
- try {
- try (Statement statement = connection.createStatement()) {
+ try (Statement statement = connection.createStatement()) {
statement.execute("drop table USERS");
- }
} catch (SQLException e) {
// Ignore
}
- try {
- try (Statement statement = connection.createStatement()) {
- statement.execute("drop table ROLES");
- }
+ try (Statement statement = connection.createStatement()) {
+ statement.execute("drop table ROLES");
} catch (SQLException e) {
// Ignore
}
- connection.commit();
- }
-
- // Create tables
- try (Connection connection = dataSource.getConnection()) {
try (Statement statement = connection.createStatement()) {
statement.execute("create table USERS (USERNAME VARCHAR(32) PRIMARY KEY, PASSWORD VARCHAR(32))");
- }
- try (Statement statement = connection.createStatement()) {
statement.execute("create table ROLES (USERNAME VARCHAR(32), ROLE VARCHAR(1024))");
}
connection.commit();
}
- // Mocks
BundleContext context = EasyMock.createMock(BundleContext.class);
- ServiceReference reference = EasyMock.createMock(ServiceReference.class);
+ ServiceReference<DataSource> reference = EasyMock.createMock(ServiceReference.class);
- // Create options
options = new HashMap<>();
options.put(JDBCUtils.DATASOURCE, "osgi:" + DataSource.class.getName());
options.put(BundleContext.class.getName(), context);
@@ -145,72 +133,68 @@ public class JdbcLoginModuleTest {
@Test
public void testEngine() throws Exception {
- JDBCBackingEngine engine = new JDBCBackingEngine(dataSource);
+ UserPrincipal user = new UserPrincipal("abc");
+ GroupPrincipal group1 = new GroupPrincipal("group1");
+ RolePrincipal role1 = new RolePrincipal("role1");
+ RolePrincipal role2 = new RolePrincipal("role2");
+ RolePrincipal role3 = new RolePrincipal("role3");
+ JDBCBackingEngine engine = new JDBCBackingEngine(dataSource);
assertTrue(engine.listUsers().isEmpty());
engine.addUser("abc", "xyz");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).isEmpty());
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
- assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).isEmpty());
+ assertTrue(engine.listRoles(group1).isEmpty());
+ assertTrue(engine.listGroups(user).isEmpty());
engine.addRole("abc", "role1");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role1")));
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
- assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).contains(role1));
+ assertTrue(engine.listRoles(group1).isEmpty());
+ assertTrue(engine.listGroups(user).isEmpty());
engine.addGroupRole("group1", "role2");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role1")));
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).contains(new RolePrincipal("role2")));
- assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).contains(role1));
+ assertTrue(engine.listRoles(group1).contains(role2));
+ assertTrue(engine.listGroups(user).isEmpty());
engine.addGroup("abc", "group1");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role1")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role2")));
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).contains(new RolePrincipal("role2")));
- assertTrue(engine.listGroups(new UserPrincipal("abc")).contains(new GroupPrincipal("group1")));
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).contains(role1));
+ assertTrue(engine.listRoles(user).contains(role2));
+ assertTrue(engine.listRoles(group1).contains(role2));
+ assertTrue(engine.listGroups(user).contains(group1));
engine.deleteRole("abc", "role1");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role2")));
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).contains(new RolePrincipal("role2")));
- assertTrue(engine.listGroups(new UserPrincipal("abc")).contains(new GroupPrincipal("group1")));
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).contains(role2));
+ assertTrue(engine.listRoles(group1).contains(role2));
+ assertTrue(engine.listGroups(user).contains(group1));
engine.deleteGroupRole("group1", "role2");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).isEmpty());
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
- assertTrue(engine.listGroups(new UserPrincipal("abc")).contains(new GroupPrincipal("group1")));
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).isEmpty());
+ assertTrue(engine.listRoles(group1).isEmpty());
+ assertTrue(engine.listGroups(user).contains(group1));
engine.addGroupRole("group1", "role3");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).contains(new RolePrincipal("role3")));
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).contains(new RolePrincipal("role3")));
- assertTrue(engine.listGroups(new UserPrincipal("abc")).contains(new GroupPrincipal("group1")));
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).contains(role3));
+ assertTrue(engine.listRoles(group1).contains(role3));
+ assertTrue(engine.listGroups(user).contains(group1));
engine.deleteGroup("abc", "group1");
-
- assertTrue(engine.listUsers().contains(new UserPrincipal("abc")));
- assertTrue(engine.listRoles(new UserPrincipal("abc")).isEmpty());
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
- assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
+ assertTrue(engine.listUsers().contains(user));
+ assertTrue(engine.listRoles(user).isEmpty());
+ assertTrue(engine.listRoles(group1).isEmpty());
+ assertTrue(engine.listGroups(user).isEmpty());
engine.deleteUser("abc");
-
assertTrue(engine.listUsers().isEmpty());
- assertTrue(engine.listRoles(new UserPrincipal("abc")).isEmpty());
- assertTrue(engine.listRoles(new GroupPrincipal("group1")).isEmpty());
- assertTrue(engine.listGroups(new UserPrincipal("abc")).isEmpty());
+ assertTrue(engine.listRoles(user).isEmpty());
+ assertTrue(engine.listRoles(group1).isEmpty());
+ assertTrue(engine.listGroups(user).isEmpty());
}
}
[2/3] karaf git commit: Extract common code
Posted by cs...@apache.org.
Extract common code
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/db2bf32c
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/db2bf32c
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/db2bf32c
Branch: refs/heads/master
Commit: db2bf32c780aadae38136e6ea6adeb8ed38950c4
Parents: c79e2ba
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Wed Aug 16 18:00:43 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Wed Aug 16 18:00:43 2017 +0200
----------------------------------------------------------------------
.../apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/db2bf32c/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
index 3d6eb66..1e194b6 100644
--- a/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
+++ b/jaas/modules/src/main/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModule.java
@@ -101,10 +101,11 @@ public class SyncopeLoginModule extends AbstractKarafLoginModule {
LOGGER.debug("Populating principals with user");
principals.add(new UserPrincipal(user));
LOGGER.debug("Retrieving user {} roles", user);
+ String responseSt = EntityUtils.toString(response.getEntity());
if (version.equals("2.x") || version.equals("2")) {
- roles = extractingRolesSyncope2(EntityUtils.toString(response.getEntity()));
+ roles = extractingRolesSyncope2(responseSt);
} else {
- roles = extractingRolesSyncope1(EntityUtils.toString(response.getEntity()));
+ roles = extractingRolesSyncope1(responseSt);
}
} catch (Exception e) {
LOGGER.error("User {} authentication failed", user, e);
@@ -162,6 +163,7 @@ public class SyncopeLoginModule extends AbstractKarafLoginModule {
* @return the list of user roles.
* @throws Exception in case of extractiong failure.
*/
+ @SuppressWarnings("unchecked")
protected List<String> extractingRolesSyncope2(String response) throws Exception {
List<String> roles = new ArrayList<>();
if (response != null && !response.isEmpty()) {
[3/3] karaf git commit: Extract response data. Improve assertions
Posted by cs...@apache.org.
Extract response data. Improve assertions
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b57bceae
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b57bceae
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b57bceae
Branch: refs/heads/master
Commit: b57bceae1855e610e3941c73b1b1260bea264c0d
Parents: db2bf32
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Wed Aug 16 18:01:20 2017 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Wed Aug 16 18:01:20 2017 +0200
----------------------------------------------------------------------
.../modules/syncope/SyncopeLoginModuleTest.java | 131 +++----------------
.../jaas/modules/syncope/syncope1Response.xml | 70 ++++++++++
.../jaas/modules/syncope/syncope2Response.json | 55 ++++++++
3 files changed, 146 insertions(+), 110 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/b57bceae/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModuleTest.java
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModuleTest.java
index 560879a..1156585 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/syncope/SyncopeLoginModuleTest.java
@@ -16,131 +16,42 @@
*/
package org.apache.karaf.jaas.modules.syncope;
-import org.junit.Test;
-import org.junit.Assert;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertThat;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.charset.Charset;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.List;
+import java.util.stream.Collectors;
+
+import org.junit.Test;
public class SyncopeLoginModuleTest {
@Test
public void testRolesExtractionSyncope1() throws Exception {
- String syncopeResponse = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
- "<user>\n" +
- " <attributes>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>cool</schema>\n" +
- " <value>false</value>\n" +
- " </attribute>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>email</schema>\n" +
- " <value>karaf@example.net</value>\n" +
- " </attribute>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>fullname</schema>\n" +
- " <value>karaf</value>\n" +
- " </attribute>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>gender</schema>\n" +
- " <value>M</value>\n" +
- " </attribute>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>surname</schema>\n" +
- " <value>karaf</value>\n" +
- " </attribute>\n" +
- " <attribute>\n" +
- " <readonly>false</readonly>\n" +
- " <schema>userId</schema>\n" +
- " <value>karaf@example.net</value>\n" +
- " </attribute>\n" +
- " </attributes>\n" +
- " <derivedAttributes/>\n" +
- " <id>100</id>\n" +
- " <propagationStatuses/>\n" +
- " <resources/>\n" +
- " <virtualAttributes/>\n" +
- " <creationDate>2014-08-12T18:37:09.202+02:00</creationDate>\n" +
- " <failedLogins>0</failedLogins>\n" +
- " <lastLoginDate>2014-08-13T09:38:02.204+02:00</lastLoginDate>\n" +
- " <memberships>\n" +
- " <membership>\n" +
- " <attributes/>\n" +
- " <derivedAttributes/>\n" +
- " <id>100</id>\n" +
- " <propagationStatuses/>\n" +
- " <resources/>\n" +
- " <virtualAttributes/>\n" +
- " <resources/>\n" +
- " <roleId>100</roleId>\n" +
- " <roleName>admin</roleName>\n" +
- " </membership>\n" +
- " <membership>\n" +
- " <attributes/>\n" +
- " <derivedAttributes/>\n" +
- " <id>101</id>\n" +
- " <propagationStatuses/>\n" +
- " <resources/>\n" +
- " <virtualAttributes/>\n" +
- " <resources/>\n" +
- " <roleId>101</roleId>\n" +
- " <roleName>another</roleName>\n" +
- " </membership>\n" +
- " </memberships>\n" +
- " <password>36460D3A3C1E27C0DB2AF23344475EE712DD3C9D</password>\n" +
- " <status>active</status>\n" +
- " <username>karaf</username>\n" +
- "</user>\n";
+ String syncopeResponse = read("syncope1Response.xml");
SyncopeLoginModule syncopeLoginModule = new SyncopeLoginModule();
List<String> roles = syncopeLoginModule.extractingRolesSyncope1(syncopeResponse);
- Assert.assertEquals(2, roles.size());
- Assert.assertEquals("admin", roles.get(0));
- Assert.assertEquals("another", roles.get(1));
+ assertThat(roles, containsInAnyOrder("admin", "another"));
}
@Test
public void testRolesExtractionSyncope2() throws Exception {
- String syncopeResponse = "{\n" + "\n"
- + " \"@class\":\"org.apache.syncope.common.lib.to.UserTO\",\n" + "\n"
- + " \"creator\":\"admin\",\n" + "\n"
- + " \"creationDate\":\"2017-07-31T08:36:41.000+0000\",\n" + "\n"
- + " \"lastModifier\":\"admin\",\n" + "\n"
- + " \"lastChangeDate\":\"2017-08-01T08:46:19.236+0000\",\n" + "\n"
- + " \"key\":\"e5a131b0-eb66-4115-a131-b0eb66511579\",\n" + "\n"
- + " \"type\":\"USER\",\n" + "\n" + " \"realm\":\"/karaf\",\n" + "\n"
- + " \"status\":\"created\",\n" + "\n" + " \"password\":null,\n" + "\n"
- + " \"token\":null,\n" + "\n" + " \"tokenExpireTime\":null,\n" + "\n"
- + " \"username\":\"karaf\",\n" + "\n"
- + " \"lastLoginDate\":\"2017-08-01T08:46:19.224+0000\",\n" + "\n"
- + " \"changePwdDate\":null,\n" + "\n" + " \"failedLogins\":0,\n" + "\n"
- + " \"securityQuestion\":null,\n" + "\n" + " \"securityAnswer\":null,\n" + "\n"
- + " \"mustChangePassword\":false,\n" + "\n" + " \"auxClasses\":[\n" + "\n"
- + " \n" + "\n" + " ],\n" + "\n" + " \"plainAttrs\":[\n" + "\n" + " \n" + "\n"
- + " ],\n" + "\n" + " \"derAttrs\":[\n" + "\n" + " \n" + "\n" + " ],\n" + "\n"
- + " \"virAttrs\":[\n" + "\n" + " \n" + "\n" + " ],\n" + "\n"
- + " \"resources\":[\n" + "\n" + " \n" + "\n" + " ],\n" + "\n"
- + " \"roles\":[\n" + "\n" + " \"admin\", \"another\"\n" + "\n" + " ],\n" +
- "\n"
- + " \"dynRoles\":[\n" + "\n" + " \"admin\"\n" + "\n" + " ],\n" + "\n"
- + " \"relationships\":[\n" + "\n" + " \n" + "\n" + " ],\n" + "\n"
- + " \"memberships\":[\n" + "\n" + " {\n" + "\n"
- + " \"type\":\"Membership\",\n" + "\n"
- + " \"rightType\":\"GROUP\",\n" + "\n"
- + " \"rightKey\":\"3847aa78-3202-4d8f-87aa-7832026d8fba\",\n" + "\n"
- + " \"groupName\":\"manager\",\n" + "\n" + " \"plainAttrs\":[\n"
- + "\n" + " \n" + "\n" + " ],\n" + "\n" + " \"derAttrs\":[\n" + "\n"
- + " \n" + "\n" + " ],\n" + "\n" + " \"virAttrs\":[\n" + "\n" + " \n"
- + "\n" + " ]\n" + "\n" + " }\n" + "\n" + " ],\n" + "\n"
- + " \"dynGroups\":[\n" + "\n" + " \n" + "\n" + " ]\n" + "\n" + "}";
+ String syncopeResponse = read("syncope2Response.json");
SyncopeLoginModule syncopeLoginModule = new SyncopeLoginModule();
List<String> roles = syncopeLoginModule.extractingRolesSyncope2(syncopeResponse);
- Assert.assertEquals(2, roles.size());
- Assert.assertEquals("admin", roles.get(0));
- Assert.assertEquals("another", roles.get(1));
+ assertThat(roles, containsInAnyOrder("admin", "another"));
+ }
+
+ private String read(String resourceName) throws URISyntaxException, IOException {
+ URI response = this.getClass().getResource(resourceName).toURI();
+ return Files.lines(Paths.get(response), Charset.forName("UTF-8"))
+ .collect(Collectors.joining("\n"));
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/b57bceae/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope1Response.xml
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope1Response.xml b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope1Response.xml
new file mode 100644
index 0000000..105ec10
--- /dev/null
+++ b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope1Response.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<user>
+ <attributes>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>cool</schema>
+ <value>false</value>
+ </attribute>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>email</schema>
+ <value>karaf@example.net</value>
+ </attribute>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>fullname</schema>
+ <value>karaf</value>
+ </attribute>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>gender</schema>
+ <value>M</value>
+ </attribute>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>surname</schema>
+ <value>karaf</value>
+ </attribute>
+ <attribute>
+ <readonly>false</readonly>
+ <schema>userId</schema>
+ <value>karaf@example.net</value>
+ </attribute>
+ </attributes>
+ <derivedAttributes/>
+ <id>100</id>
+ <propagationStatuses/>
+ <resources/>
+ <virtualAttributes/>
+ <creationDate>2014-08-12T18:37:09.202+02:00</creationDate>
+ <failedLogins>0</failedLogins>
+ <lastLoginDate>2014-08-13T09:38:02.204+02:00</lastLoginDate>
+ <memberships>
+ <membership>
+ <attributes/>
+ <derivedAttributes/>
+ <id>100</id>
+ <propagationStatuses/>
+ <resources/>
+ <virtualAttributes/>
+ <resources/>
+ <roleId>100</roleId>
+ <roleName>admin</roleName>
+ </membership>
+ <membership>
+ <attributes/>
+ <derivedAttributes/>
+ <id>101</id>
+ <propagationStatuses/>
+ <resources/>
+ <virtualAttributes/>
+ <resources/>
+ <roleId>101</roleId>
+ <roleName>another</roleName>
+ </membership>
+ </memberships>
+ <password>36460D3A3C1E27C0DB2AF23344475EE712DD3C9D</password>
+ <status>active</status>
+ <username>karaf</username>
+</user>
http://git-wip-us.apache.org/repos/asf/karaf/blob/b57bceae/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope2Response.json
----------------------------------------------------------------------
diff --git a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope2Response.json b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope2Response.json
new file mode 100644
index 0000000..8a803f2
--- /dev/null
+++ b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/syncope/syncope2Response.json
@@ -0,0 +1,55 @@
+{
+ "@class":"org.apache.syncope.common.lib.to.UserTO",
+ "creator":"admin",
+ "creationDate":"2017-07-31T08:36:41.000+0000",
+ "lastModifier":"admin",
+ "lastChangeDate":"2017-08-01T08:46:19.236+0000",
+ "key":"e5a131b0-eb66-4115-a131-b0eb66511579",
+ "type":"USER",
+ "realm":"/karaf",
+ "status":"created",
+ "password":null,
+ "token":null,
+ "tokenExpireTime":null,
+ "username":"karaf",
+ "lastLoginDate":"2017-08-01T08:46:19.224+0000",
+ "changePwdDate":null,
+ "failedLogins":0,
+ "securityQuestion":null,
+ "securityAnswer":null,
+ "mustChangePassword":false,
+ "auxClasses":[
+ ],
+ "plainAttrs":[
+ ],
+ "derAttrs":[
+ ],
+ "virAttrs":[
+ ],
+ "resources":[
+ ],
+ "roles":[
+ "admin", "another"
+ ],
+ "dynRoles":[
+ "admin"
+ ],
+ "relationships":[
+ ],
+ "memberships":[
+ {
+ "type":"Membership",
+ "rightType":"GROUP",
+ "rightKey":"3847aa78-3202-4d8f-87aa-7832026d8fba",
+ "groupName":"manager",
+ "plainAttrs":[
+ ],
+ "derAttrs":[
+ ],
+ "virAttrs":[
+ ]
+ }
+ ],
+ "dynGroups":[
+ ]
+}