Repository: syncope
Updated Branches:
  refs/heads/2_0_X 077edf874 -> 767c30307
  refs/heads/master b49453765 -> a70efed4c


http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
index 05a48ba..74a8924 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/AuthenticationITCase.java
@@ -38,6 +38,8 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
+import org.apache.syncope.client.lib.BasicAuthenticationHandler;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.EntityTOUtils;
 import org.apache.syncope.common.lib.SyncopeClientException;
@@ -98,15 +100,6 @@ public class AuthenticationITCase extends AbstractITCase {
         return readUserTO.getFailedLogins();
     }
 
-    private void assertReadFails(final SyncopeClient client) {
-        try {
-            client.self();
-            fail("access should not work");
-        } catch (Exception e) {
-            assertNotNull(e);
-        }
-    }
-
     @Test
     public void testReadEntitlements() {
         // 1. as not authenticated (not allowed)
@@ -118,7 +111,8 @@ public class AuthenticationITCase extends AbstractITCase {
         }
 
         // 2. as anonymous
-        Pair<Map<String, Set<String>>, UserTO> self = 
clientFactory.create(ANONYMOUS_UNAME, ANONYMOUS_KEY).self();
+        Pair<Map<String, Set<String>>, UserTO> self = clientFactory.create(
+                new AnonymousAuthenticationHandler(ANONYMOUS_UNAME, 
ANONYMOUS_KEY)).self();
         assertEquals(1, self.getKey().size());
         
assertTrue(self.getKey().keySet().contains(StandardEntitlement.ANONYMOUS));
         assertEquals(ANONYMOUS_UNAME, self.getValue().getUsername());
@@ -342,10 +336,18 @@ public class AuthenticationITCase extends AbstractITCase {
         assertEquals(0, getFailedLogins(userService2, userKey));
 
         // authentications failed ...
-        SyncopeClient badPwdClient = 
clientFactory.create(userTO.getUsername(), "wrongpwd1");
-        assertReadFails(badPwdClient);
-        assertReadFails(badPwdClient);
-
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
         assertEquals(2, getFailedLogins(userService, userKey));
 
         UserService userService4 = clientFactory.create(userTO.getUsername(), 
"password123").
@@ -366,15 +368,34 @@ public class AuthenticationITCase extends AbstractITCase {
         assertEquals(0, getFailedLogins(userService, userKey));
 
         // authentications failed ...
-        SyncopeClient badPwdClient = 
clientFactory.create(userTO.getUsername(), "wrongpwd1");
-        assertReadFails(badPwdClient);
-        assertReadFails(badPwdClient);
-        assertReadFails(badPwdClient);
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
 
         assertEquals(3, getFailedLogins(userService, userKey));
 
         // last authentication before suspension
-        assertReadFails(badPwdClient);
+        try {
+            clientFactory.create(userTO.getUsername(), "wrongpwd1");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
 
         userTO = userService.read(userTO.getKey());
         assertNotNull(userTO);
@@ -383,8 +404,12 @@ public class AuthenticationITCase extends AbstractITCase {
         assertEquals("suspended", userTO.getStatus());
 
         // Access with correct credentials should fail as user is suspended
-        SyncopeClient goodPwdClient = 
clientFactory.create(userTO.getUsername(), "password123");
-        assertReadFails(goodPwdClient);
+        try {
+            clientFactory.create(userTO.getUsername(), "password123");
+            fail();
+        } catch (AccessControlException e) {
+            assertNotNull(e);
+        }
 
         StatusPatch reactivate = new StatusPatch();
         reactivate.setKey(userTO.getKey());
@@ -394,6 +419,7 @@ public class AuthenticationITCase extends AbstractITCase {
         assertNotNull(userTO);
         assertEquals("active", userTO.getStatus());
 
+        SyncopeClient goodPwdClient = 
clientFactory.create(userTO.getUsername(), "password123");
         assertEquals(0, goodPwdClient.self().getValue().getFailedLogins(), 0);
     }
 
@@ -468,6 +494,8 @@ public class AuthenticationITCase extends AbstractITCase {
         assertTrue(bellini.getRoles().contains(role.getKey()));
 
         // 5. now the instance of the type above can be created successfully
+        belliniClient.logout();
+        belliniClient.login(new BasicAuthenticationHandler("bellini", 
ADMIN_PWD));
         belliniClient.getService(AnyObjectService.class).create(folder);
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
index 2295fc8..1d8c528 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/GroupITCase.java
@@ -41,6 +41,7 @@ import javax.ws.rs.core.Response;
 import org.apache.commons.collections4.IterableUtils;
 import org.apache.commons.collections4.Predicate;
 import org.apache.commons.lang3.SerializationUtils;
+import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.AnyOperations;
 import org.apache.syncope.common.lib.SyncopeClientException;
@@ -624,7 +625,9 @@ public class GroupITCase extends AbstractITCase {
             assertNotNull(e);
         }
 
-        GroupService anonymous = clientFactory.create(ANONYMOUS_UNAME, 
ANONYMOUS_KEY).getService(GroupService.class);
+        GroupService anonymous = clientFactory.create(
+                new AnonymousAuthenticationHandler(ANONYMOUS_UNAME, 
ANONYMOUS_KEY)).
+                getService(GroupService.class);
         assertFalse(anonymous.search(new 
AnyQuery.Builder().realm(SyncopeConstants.ROOT_REALM).build()).
                 getResult().isEmpty());
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
index dcacbeb..8c11fb7 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/MultitenancyITCase.java
@@ -100,7 +100,7 @@ public class MultitenancyITCase extends AbstractITCase {
 
     @Test
     public void readPlainSchemas() {
-        assertEquals(11, adminClient.getService(SchemaService.class).
+        assertEquals(13, adminClient.getService(SchemaService.class).
                 list(new 
SchemaQuery.Builder().type(SchemaType.PLAIN).build()).size());
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RESTITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RESTITCase.java 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RESTITCase.java
index 9d8d920..b98dc53 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RESTITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/RESTITCase.java
@@ -38,6 +38,7 @@ import javax.ws.rs.core.Response;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.syncope.client.lib.BasicAuthenticationHandler;
 import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.client.lib.SyncopeClientFactoryBean;
 import org.apache.syncope.common.lib.SyncopeClientException;
@@ -69,9 +70,8 @@ public class RESTITCase extends AbstractITCase {
         assertFalse(connectors.isEmpty());
 
         // service with bad password: 401 unauthorized
-        SyncopeClient badClient = clientFactory.create("bellini", "passwor");
         try {
-            badClient.getService(ConnectorService.class).list(null);
+            clientFactory.create("bellini", "passwor");
             fail();
         } catch (AccessControlException e) {
             assertNotNull(e);
@@ -90,7 +90,8 @@ public class RESTITCase extends AbstractITCase {
     @Test
     public void noContent() throws IOException {
         SyncopeClient noContentclient = clientFactory.create(ADMIN_UNAME, 
ADMIN_PWD);
-        GroupService noContentService = 
noContentclient.prefer(GroupService.class, Preference.RETURN_NO_CONTENT);
+        GroupService noContentService = noContentclient.prefer(
+                noContentclient.getService(GroupService.class), 
Preference.RETURN_NO_CONTENT);
 
         GroupTO group = GroupITCase.getSampleTO("noContent");
 
@@ -144,7 +145,7 @@ public class RESTITCase extends AbstractITCase {
         EntityTag etag1 = adminClient.getLatestEntityTag(userService);
         assertFalse(etag.getValue().equals(etag1.getValue()));
 
-        UserService ifMatchService = adminClient.ifMatch(UserService.class, 
etag);
+        UserService ifMatchService = 
adminClient.ifMatch(adminClient.getService(UserService.class), etag);
         userPatch.setUsername(new 
StringReplacePatchItem.Builder().value(userTO.getUsername() + "YY").build());
         try {
             ifMatchService.update(userPatch);
@@ -165,8 +166,7 @@ public class RESTITCase extends AbstractITCase {
                 MediaType.WILDCARD_TYPE,
                 factory.getRestClientFactoryBean(),
                 factory.getExceptionMapper(),
-                ADMIN_UNAME,
-                ADMIN_PWD,
+                new BasicAuthenticationHandler(ADMIN_UNAME, ADMIN_PWD),
                 false);
 
         // perform operation

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
index ca568da..370cf52 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/ResourceITCase.java
@@ -35,6 +35,7 @@ import java.util.Set;
 import javax.ws.rs.core.Response;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.Transformer;
+import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.AnyObjectTO;
 import org.apache.syncope.common.lib.to.ConnObjectTO;
@@ -528,7 +529,8 @@ public class ResourceITCase extends AbstractITCase {
             assertNotNull(e);
         }
 
-        ResourceService anonymous = clientFactory.create(ANONYMOUS_UNAME, 
ANONYMOUS_KEY).
+        ResourceService anonymous = clientFactory.create(
+                new AnonymousAuthenticationHandler(ANONYMOUS_UNAME, 
ANONYMOUS_KEY)).
                 getService(ResourceService.class);
         assertFalse(anonymous.list().isEmpty());
     }

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
index 9cea62a..21e9fe6 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/UserITCase.java
@@ -42,6 +42,7 @@ import org.apache.commons.lang3.time.DateFormatUtils;
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.cxf.jaxrs.client.WebClient;
+import org.apache.syncope.client.lib.SyncopeClient;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.SyncopeConstants;
 import org.apache.syncope.common.lib.patch.AssociationPatch;
@@ -325,10 +326,8 @@ public class UserITCase extends AbstractITCase {
             fail("Credentials should be valid and not cause 
AccessControlException");
         }
 
-        UserSelfService userSelfService2 = clientFactory.create(
-                newUserTO.getUsername(), 
"passwordXX").getService(UserSelfService.class);
         try {
-            userSelfService2.read();
+            clientFactory.create(newUserTO.getUsername(), 
"passwordXX").getService(UserSelfService.class);
             fail("Credentials are invalid, thus request should raise 
AccessControlException");
         } catch (AccessControlException e) {
             assertNotNull(e);
@@ -879,8 +878,8 @@ public class UserITCase extends AbstractITCase {
 
     @Test
     public void async() {
-        UserService asyncService =
-                clientFactory.create(ADMIN_UNAME, 
ADMIN_PWD).nullPriorityAsync(UserService.class, true);
+        SyncopeClient asyncClient = clientFactory.create(ADMIN_UNAME, 
ADMIN_PWD);
+        UserService asyncService = 
asyncClient.nullPriorityAsync(asyncClient.getService(UserService.class), true);
 
         UserTO user = getUniqueSampleTO("as...@syncope.apache.org");
         user.getResources().add(RESOURCE_NAME_TESTDB);

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
index 15faa01..faf1a0d 100644
--- 
a/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
+++ 
b/fit/core-reference/src/test/java/org/apache/syncope/fit/core/VirSchemaITCase.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.fail;
 import java.security.AccessControlException;
 import java.util.List;
 import javax.ws.rs.core.Response;
+import org.apache.syncope.client.lib.AnonymousAuthenticationHandler;
 import org.apache.syncope.common.lib.SyncopeClientException;
 import org.apache.syncope.common.lib.to.ResourceTO;
 import org.apache.syncope.common.lib.to.VirSchemaTO;
@@ -99,7 +100,9 @@ public class VirSchemaITCase extends AbstractITCase {
             assertNotNull(e);
         }
 
-        SchemaService anonymous = clientFactory.create(ANONYMOUS_UNAME, 
ANONYMOUS_KEY).getService(SchemaService.class);
+        SchemaService anonymous = clientFactory.create(
+                new AnonymousAuthenticationHandler(ANONYMOUS_UNAME, 
ANONYMOUS_KEY)).
+                getService(SchemaService.class);
         assertFalse(anonymous.list(new 
SchemaQuery.Builder().type(SchemaType.VIRTUAL).build()).isEmpty());
     }
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index a6f6d3c..7fa2bd2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -551,6 +551,11 @@ under the License.
       </dependency>
       <dependency>
         <groupId>org.apache.cxf</groupId>
+        <artifactId>cxf-rt-rs-security-jose</artifactId>
+        <version>${cxf.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.cxf</groupId>
         <artifactId>cxf-rt-rs-service-description</artifactId>
         <version>${cxf.version}</version>
       </dependency>
@@ -768,7 +773,11 @@ under the License.
         <exclusions>
           <exclusion>
             <groupId>org.springframework</groupId>
-            <artifactId>spring-aop</artifactId>
+            <artifactId>spring-beans</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
           </exclusion>
           <exclusion>
             <groupId>org.springframework</groupId>
@@ -780,6 +789,16 @@ under the License.
         <groupId>org.springframework.security</groupId>
         <artifactId>spring-security-web</artifactId>
         <version>${spring-security.version}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-beans</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-core</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.springframework.security</groupId>

http://git-wip-us.apache.org/repos/asf/syncope/blob/521f51a9/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
----------------------------------------------------------------------
diff --git a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc 
b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
index 07be49c..ad0cff6 100644
--- a/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
+++ b/src/main/asciidoc/reference-guide/concepts/typemanagement.adoc
@@ -72,7 +72,7 @@ Sometimes it is useful to obtain values as arbitrary 
combinations of other attri
 concatenation of `firstname` 's and `surname` 's values, separated by a blank 
space.
 
 Derived schemas are always read-only and require a 
http://commons.apache.org/proper/commons-jexl/[JEXL^]
-expression to be specified that reference plain schema types. +
+expression to be specified that references plain schema types. +
 For the sample above, it would be
 
  firstname + ' ' + surname

Reply via email to