You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by mr...@apache.org on 2016/03/29 22:11:42 UTC
[1/8] usergrid git commit: USERGRID-771
Repository: usergrid
Updated Branches:
refs/heads/hotfix-2.0.0 [created] f89bbdbc0
USERGRID-771
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/d2fd9ba4
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/d2fd9ba4
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/d2fd9ba4
Branch: refs/heads/hotfix-2.0.0
Commit: d2fd9ba41e009e5c17226d11e205a77f1f7f9a53
Parents: 066d7db
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 22 12:06:26 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 22 16:04:45 2015 -0600
----------------------------------------------------------------------
.../usergrid/rest/management/AdminUsersIT.java | 8 ++--
.../rest/management/RegistrationIT.java | 8 ++--
.../management/AccountCreationProps.java | 4 +-
.../cassandra/ManagementServiceImpl.java | 44 +++++++++++++++++---
.../apache/usergrid/management/EmailFlowIT.java | 8 ++--
5 files changed, 54 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
index fffb28a..375bbd9 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
@@ -53,7 +53,7 @@ import com.sun.jersey.api.representation.Form;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD;
import static org.junit.Assert.assertEquals;
@@ -215,7 +215,7 @@ public class AdminUsersIT extends AbstractRestIT {
testPropertiesMap.put( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" );
//Requires admins to do email confirmation before they can log in.
testPropertiesMap.put( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" );
- testPropertiesMap.put( PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
+ testPropertiesMap.put( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
Entity testPropertiesPayload = new Entity( testPropertiesMap );
@@ -647,7 +647,7 @@ public class AdminUsersIT extends AbstractRestIT {
testPropertiesMap.put( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" );
//Requires admins to do email confirmation before they can log in.
testPropertiesMap.put( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" );
- testPropertiesMap.put( PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
+ testPropertiesMap.put( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
Entity testPropertiesPayload = new Entity( testPropertiesMap );
@@ -659,7 +659,7 @@ public class AdminUsersIT extends AbstractRestIT {
//Retrieve properties and ensure that they are set correctly.
ApiResponse apiResponse = clientSetup.getRestClient().testPropertiesResource().get();
- assertEquals( "sysadmin-1@mockserver.com", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_EMAIL ) );
+ assertEquals( "sysadmin-1@mockserver.com", apiResponse.getProperties().get( PROPERTIES_DEFAULT_SYSADMIN_EMAIL ) );
assertEquals( "true", apiResponse.getProperties().get( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION ) );
assertEquals( "false", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS ) );
assertEquals( "false", apiResponse.getProperties().get( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS ) );
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
index 1e94a2d..387f2b8 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
@@ -190,7 +190,7 @@ public class RegistrationIT extends AbstractRestIT {
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false");
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false");
setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false");
- setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
+ setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
String t = this.getAdminToken().getAccessToken();
Form form = new Form();
@@ -217,7 +217,7 @@ public class RegistrationIT extends AbstractRestIT {
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false");
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false");
setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false");
- setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
+ setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
String t = this.getAdminToken().getAccessToken();
postAddAdminToOrg("test-organization", "test-admin@mockserver.com", "password", t);
@@ -237,7 +237,7 @@ public class RegistrationIT extends AbstractRestIT {
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false");
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false");
setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false");
- setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
+ setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
// this should send resetpwd link in email to newly added org admin user(that did not exist
///in usergrid) and "User Invited To Organization" email
@@ -295,7 +295,7 @@ public class RegistrationIT extends AbstractRestIT {
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false");
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false");
setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false");
- setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
+ setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
// svcSetup an admin user
String adminUserName = "AdminUserFromOtherOrg";
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java b/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java
index 6c000e2..e67271e 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/AccountCreationProps.java
@@ -85,7 +85,9 @@ public interface AccountCreationProps {
public static final String PROPERTIES_SYSADMIN_LOGIN_NAME = "usergrid.sysadmin.login.name";
public static final String PROPERTIES_SYSADMIN_LOGIN_ALLOWED = "usergrid.sysadmin.login.allowed";
- public static final String PROPERTIES_SYSADMIN_EMAIL = "usergrid.sysadmin.email";
+ public static final String PROPERTIES_ADMIN_SYSADMIN_EMAIL = "usergrid.admin.sysadmin.email";
+ public static final String PROPERTIES_ORG_SYSADMIN_EMAIL = "usergrid.org.sysadmin.email";
+ public static final String PROPERTIES_DEFAULT_SYSADMIN_EMAIL = "usergrid.sysadmin.email";
public static final String PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD =
"usergrid.test-account.admin-user.password";
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 5c79b14..47e32a8 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -126,7 +126,9 @@ import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMA
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_MAILER_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATION_ACTIVATION_URL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SETUP_TEST_ACCOUNT;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_ALLOWED;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_NAME;
@@ -230,11 +232,11 @@ public class ManagementServiceImpl implements ManagementService {
protected EncryptionService encryptionService;
+
/** Must be constructed with a CassandraClientPool. */
public ManagementServiceImpl() {
}
-
@Autowired
public void setEntityManagerFactory( EntityManagerFactory emf ) {
logger.info( "ManagementServiceImpl.setEntityManagerFactory" );
@@ -245,6 +247,33 @@ public class ManagementServiceImpl implements ManagementService {
@Autowired
public void setProperties( Properties properties ) {
this.properties = new AccountCreationPropsImpl( properties );
+
+
+ }
+
+ String orgSysAdminEmail,defaultSysAdminEmail,adminSysAdminEmail;
+ private String getDefaultSysAdminEmail(){
+ defaultSysAdminEmail = defaultSysAdminEmail != null
+ ? defaultSysAdminEmail
+ : properties.getProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL);
+ return defaultSysAdminEmail;
+ }
+ private String getOrgSystemEmail(){
+ if( orgSysAdminEmail != null ){
+ return orgSysAdminEmail;
+ }
+ orgSysAdminEmail = properties.getProperty( PROPERTIES_ORG_SYSADMIN_EMAIL );
+ orgSysAdminEmail = orgSysAdminEmail!=null ? orgSysAdminEmail : getDefaultSysAdminEmail();
+ return orgSysAdminEmail;
+ }
+
+ private String getAdminSystemEmail(){
+ if( adminSysAdminEmail != null ){
+ return adminSysAdminEmail;
+ }
+ adminSysAdminEmail = properties.getProperty( PROPERTIES_ADMIN_SYSADMIN_EMAIL );
+ adminSysAdminEmail = adminSysAdminEmail!=null ? adminSysAdminEmail : getDefaultSysAdminEmail();
+ return adminSysAdminEmail;
}
@@ -2202,7 +2231,8 @@ public class ManagementServiceImpl implements ManagementService {
}
if ( newOrganizationsNeedSysAdminApproval() ) {
logger.info( "sending SysAdminApproval confirmation email: {}", organization.getName() );
- sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ),
+ //TODO: add org email approval
+ sendHtmlMail( properties, getOrgSystemEmail(),
properties.getProperty( PROPERTIES_MAILER_EMAIL ),
"Request For Organization Account Activation " + organization.getName(), appendEmailFooter(
emailMsg( hashMap( "organization_name", organization.getName() )
@@ -2265,7 +2295,8 @@ public class ManagementServiceImpl implements ManagementService {
organization_owners = ( organization_owners == null ) ? user.getHTMLDisplayEmailAddress() :
organization_owners + ", " + user.getHTMLDisplayEmailAddress();
}
- sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ),
+ //TODO: org email
+ sendHtmlMail( properties, getOrgSystemEmail(),
properties.getProperty( PROPERTIES_MAILER_EMAIL ),
"Organization Account Activated " + organization.getName(), appendEmailFooter( emailMsg(
hashMap( "organization_name", organization.getName() )
@@ -2358,10 +2389,11 @@ public class ManagementServiceImpl implements ManagementService {
public void sendSysAdminRequestAdminActivationEmail( UserInfo user ) throws Exception {
String token = getActivationTokenForAdminUser( user.getUuid(), 0 );
+ //TODO: admin specific email
String activation_url =
String.format( properties.getProperty( PROPERTIES_ADMIN_ACTIVATION_URL ), user.getUuid().toString() )
+ "?token=" + token;
- sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ),
+ sendHtmlMail( properties, getAdminSystemEmail(),
properties.getProperty( PROPERTIES_MAILER_EMAIL ),
"Request For Admin User Account Activation " + user.getEmail(), appendEmailFooter(
emailMsg( hashMap( "user_email", user.getEmail() ).map( "activation_url", activation_url ),
@@ -2371,7 +2403,7 @@ public class ManagementServiceImpl implements ManagementService {
public void sendSysAdminNewAdminActivatedNotificationEmail( UserInfo user ) throws Exception {
if ( properties.notifySysAdminOfNewAdminUsers() ) {
- sendHtmlMail( properties, properties.getProperty( PROPERTIES_SYSADMIN_EMAIL ),
+ sendHtmlMail( properties, getAdminSystemEmail(),
properties.getProperty( PROPERTIES_MAILER_EMAIL ),
"Admin User Account Activated " + user.getEmail(), appendEmailFooter(
emailMsg( hashMap( "user_email", user.getEmail() ), PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATED ) ) );
http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2fd9ba4/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
index 0065d5a..26f150a 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
@@ -74,7 +74,9 @@ import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_NOT
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATIONS_REQUIRE_CONFIRMATION;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
+import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_ACTIVATION_URL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_CONFIRMATION_URL;
import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_RESETPW_URL;
@@ -111,7 +113,7 @@ public class EmailFlowIT {
setup.set( PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false" );
setup.set( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" );
setup.set( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" );
- setup.set( PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
+ setup.set( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com" );
setup.set( PROPERTIES_NOTIFY_ADMIN_OF_ACTIVATION, "true" );
final String orgName = uniqueOrg();
@@ -154,7 +156,7 @@ public class EmailFlowIT {
setup.set( PROPERTIES_NOTIFY_ADMIN_OF_ACTIVATION, "true" );
setup.set( PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false" );
setup.set( PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "true" );
- setup.set( PROPERTIES_SYSADMIN_EMAIL, "sysadmin-2@mockserver.com" );
+ setup.set( PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-2@mockserver.com" );
final String orgName = uniqueOrg();
final String userName = uniqueUsername();
[4/8] usergrid git commit: remove unused references
Posted by mr...@apache.org.
remove unused references
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/5732deeb
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/5732deeb
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/5732deeb
Branch: refs/heads/hotfix-2.0.0
Commit: 5732deeb178cd68d0a24b10a7f5ceebb80612497
Parents: 86fac5e
Author: Shawn Feldman <sf...@apache.org>
Authored: Tue Jul 28 11:00:53 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Tue Jul 28 11:00:53 2015 -0600
----------------------------------------------------------------------
.../collection/users/PermissionsResourceIT.java | 13 -------------
1 file changed, 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/5732deeb/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/PermissionsResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/PermissionsResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/PermissionsResourceIT.java
index 4fa8ab0..9a1610b 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/PermissionsResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/users/PermissionsResourceIT.java
@@ -17,33 +17,20 @@
package org.apache.usergrid.rest.applications.collection.users;
-import java.util.Iterator;
import java.util.List;
-import java.util.Map;
import java.util.UUID;
-import javax.ws.rs.core.MediaType;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.node.ArrayNode;
import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT;
import org.apache.usergrid.rest.test.resource2point0.model.*;
-import org.elasticsearch.common.collect.HppcMaps;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
-import org.apache.usergrid.java.client.entities.Group;
-import org.apache.usergrid.management.ApplicationInfo;
-import org.apache.usergrid.management.OrganizationOwnerInfo;
-import org.apache.usergrid.utils.UUIDUtils;
-import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.ClientResponse.Status;
import com.sun.jersey.api.client.UniformInterfaceException;
import java.io.IOException;
-import static org.apache.usergrid.utils.MapUtils.hashMap;
import static org.junit.Assert.*;
[7/8] usergrid git commit: Allow superuser to access
@RequireAdminUserAccess
Posted by mr...@apache.org.
Allow superuser to access @RequireAdminUserAccess
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/e3b467d1
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/e3b467d1
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/e3b467d1
Branch: refs/heads/hotfix-2.0.0
Commit: e3b467d1a98dd083095e77b7442d0c84e648022c
Parents: f61b5a1
Author: Michael Russo <mr...@apigee.com>
Authored: Mon Feb 22 21:54:28 2016 -0800
Committer: Michael Russo <mr...@apigee.com>
Committed: Mon Feb 22 21:54:28 2016 -0800
----------------------------------------------------------------------
.../org/apache/usergrid/rest/management/users/UserResource.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/e3b467d1/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UserResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UserResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UserResource.java
index 7ea4eec..799d59f 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UserResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/management/users/UserResource.java
@@ -100,7 +100,7 @@ public class UserResource extends AbstractContextResource {
return getSubResource( OrganizationsResource.class ).init( user );
}
-
+ @RequireAdminUserAccess
@PUT
public JSONWithPadding setUserInfo( @Context UriInfo ui, Map<String, Object> json,
@QueryParam( "callback" ) @DefaultValue( "callback" ) String callback )
[2/8] usergrid git commit: registration it
Posted by mr...@apache.org.
registration it
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/1972937a
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/1972937a
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/1972937a
Branch: refs/heads/hotfix-2.0.0
Commit: 1972937aa9bf1a71e1398a2f2819342eb2324dc3
Parents: d2fd9ba
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Jul 22 16:06:37 2015 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Jul 22 16:06:37 2015 -0600
----------------------------------------------------------------------
.../java/org/apache/usergrid/rest/management/RegistrationIT.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/1972937a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
index 387f2b8..d5bd5f9 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/RegistrationIT.java
@@ -122,7 +122,7 @@ public class RegistrationIT extends AbstractRestIT {
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS, "false");
setTestProperty(PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS, "false");
setTestProperty(PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION, "false");
- setTestProperty(PROPERTIES_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
+ setTestProperty(PROPERTIES_DEFAULT_SYSADMIN_EMAIL, "sysadmin-1@mockserver.com");
final String username = "registrationUser" + UUIDGenerator.newTimeUUID();
final String email = username + "@usergrid.com";
[6/8] usergrid git commit: Allow superuser to access
@RequireAdminUserAccess
Posted by mr...@apache.org.
Allow superuser to access @RequireAdminUserAccess
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/f61b5a13
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/f61b5a13
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/f61b5a13
Branch: refs/heads/hotfix-2.0.0
Commit: f61b5a1306e5f5bed29286c3a821797f7ca9b81c
Parents: 8dddc0e
Author: Michael Russo <mr...@apigee.com>
Authored: Mon Feb 22 21:17:24 2016 -0800
Committer: Michael Russo <mr...@apigee.com>
Committed: Mon Feb 22 21:17:24 2016 -0800
----------------------------------------------------------------------
.../MvccEntitySerializationStrategyImpl.java | 2 +-
.../security/SecuredResourceFilterFactory.java | 2 +-
.../usergrid/rest/management/AdminUsersIT.java | 99 ++++++++++++++++----
.../endpoints/NamedResource.java | 32 +++++++
.../endpoints/mgmt/OrgResource.java | 5 +
.../endpoints/mgmt/TokenResource.java | 9 ++
6 files changed, 130 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
index 6badbc1..8dbb24f 100644
--- a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
+++ b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/serialization/impl/MvccEntitySerializationStrategyImpl.java
@@ -200,7 +200,7 @@ public abstract class MvccEntitySerializationStrategyImpl implements MvccEntityS
final List<ScopedRowKey<CollectionPrefixedKey<Id>>> scopedRowKeys ) {
try {
- return keyspace.prepareQuery( columnFamily ).getKeySlice( rowKeys )
+ return keyspace.prepareQuery( columnFamily ).getKeySlice( scopedRowKeys )
.withColumnRange( maxVersion, null, false,
1 ).execute().getResult();
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java b/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
index 2699938..c554fea 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
@@ -321,7 +321,7 @@ public class SecuredResourceFilterFactory implements ResourceFilterFactory {
@Override
public void authorize( ContainerRequest request ) {
logger.debug( "AdminUserFilter.authorize" );
- if ( !isUser( getUserIdentifier() ) ) {
+ if ( !isUser( getUserIdentifier() ) && !isServiceAdmin() ) {
throw mappableSecurityException( "unauthorized", "No admin user access authorized" );
}
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
index 2a68029..7b13fd1 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
@@ -158,6 +158,7 @@ public class AdminUsersIT extends AbstractRestIT {
* Get the management user feed and check that it has the correct title.
* @throws Exception
*/
+ @Ignore
@Test
public void mgmtUserFeed() throws Exception {
@@ -332,16 +333,35 @@ public class AdminUsersIT extends AbstractRestIT {
}
}
- /**
- * Update the current management user and make sure the change persists
- * @throws Exception
- */
- @Ignore("Fails because we cannot GET a management user with a super user token - only with an Admin level token."
- + "But, we can PUT with a superuser token. This test will work once that issue has been resolved.")
@Test
- public void updateManagementUser() throws Exception {
+ public void updateManagementUserNoToken() throws Exception {
+
+
+ Organization newOrg = createOrgPayload( "updateManagementUserNoToken", null );
+
+
+ Organization orgReturned = clientSetup.getRestClient().management().orgs().post( newOrg );
+
+ assertNotNull( orgReturned.getOwner() );
+
+ //Add a property to management user
+ Entity userProperty = new Entity( ).chainPut( "company","usergrid" );
+
+ try{
+ management().users().user( newOrg.getUsername() ).put( userProperty );
+ } catch( UniformInterfaceException e ){
+
+ int status = e.getResponse().getStatus();
+ assertEquals(401, status);
+ }
+
+ }
+
+ @Test
+ public void updateManagementUserSuperuserToken() throws Exception {
+
- Organization newOrg = createOrgPayload( "updateManagementUser", null );
+ Organization newOrg = createOrgPayload( "updateManagementUserSuperuserToken", null );
Organization orgReturned = clientSetup.getRestClient().management().orgs().post( newOrg );
@@ -350,24 +370,69 @@ public class AdminUsersIT extends AbstractRestIT {
//Add a property to management user
Entity userProperty = new Entity( ).chainPut( "company","usergrid" );
+
+ management.token().setToken( clientSetup.getSuperuserToken());
management().users().user( newOrg.getUsername() ).put( userProperty );
- Entity userUpdated = updateAdminUser( userProperty, orgReturned );
- assertEquals( "usergrid",userUpdated.getAsString( "company" ) );
+ }
- //Update property with new management value.
- userProperty = new Entity( ).chainPut( "company","Apigee" );
+ @Test
+ public void updateManagementUserAdminToken() throws Exception {
- userUpdated = updateAdminUser( userProperty, orgReturned);
+ Organization newOrg = createOrgPayload( "updateManagementUserAdminToken", null );
+
+
+ Organization orgReturned = clientSetup.getRestClient().management().orgs().post( newOrg );
+
+ assertNotNull( orgReturned.getOwner() );
+
+ String orgName = orgReturned.getName();
+
+ //Add a property to management user
+ Entity userProperty = new Entity( ).chainPut( "company","usergrid" );
+
+ User adminUser = orgReturned.getOwner();
+
+ Token adminToken = management.token().get(adminUser.getUsername(), orgName);
+ assertNotNull(adminToken);
+ management.token().setToken( adminToken );
+ management().users().user( newOrg.getUsername() ).put( userProperty );
- assertEquals( "Apigee",userUpdated.getAsString( "company" ) );
}
- private Entity updateAdminUser(Entity userProperty, Organization organization){
- management().users().user( organization.getUsername() ).put( userProperty );
+ @Test
+ public void updateManagementUserWrongAdminToken() throws Exception {
+
+ Organization newOrg = createOrgPayload( "updateManagementUserWrongAdminToken", null );
+ Organization orgReturned = clientSetup.getRestClient().management().orgs().post( newOrg );
+ assertNotNull( orgReturned.getOwner() );
+
+ // add a new management user to the org for the purpose of a 'wrong' user trying update others
+ Entity adminUserPayload = new Entity();
+ String wrongAdminUsername = "wrongAdminUser"+UUIDUtils.newTimeUUID();
+ adminUserPayload.put( "username", wrongAdminUsername );
+ adminUserPayload.put( "name", wrongAdminUsername );
+ adminUserPayload.put( "email", wrongAdminUsername+"@usergrid.com" );
+ adminUserPayload.put( "password", wrongAdminUsername );
+ management().orgs().org( clientSetup.getOrganizationName() ).users().post(User.class ,adminUserPayload );
- return management().users().user( organization.getUsername() ).get();
+
+ // get token of the newly added wrongAdminUser
+ Token wrongAdminToken = management.token().get(wrongAdminUsername, wrongAdminUsername);
+ assertNotNull(wrongAdminToken);
+ management.token().setToken( wrongAdminToken );
+
+ try{
+ //Add a property to management user
+ Entity userProperty = new Entity( ).chainPut( "company","usergrid" );
+ management().users().user( newOrg.getUsername() ).put( userProperty );
+
+ } catch( UniformInterfaceException e ){
+
+ int status = e.getResponse().getStatus();
+ assertEquals(401, status);
+ }
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java
index bf5dbf0..8d8ed6b 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java
@@ -17,12 +17,16 @@
package org.apache.usergrid.rest.test.resource2point0.endpoints;
+import com.sun.jersey.api.client.GenericType;
+import com.sun.jersey.api.client.filter.HTTPBasicAuthFilter;
+import org.apache.usergrid.rest.test.resource2point0.model.Entity;
import org.apache.usergrid.rest.test.resource2point0.model.QueryParameters;
import org.apache.usergrid.rest.test.resource2point0.model.Token;
import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
import com.sun.jersey.api.client.WebResource;
+import javax.ws.rs.core.MediaType;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -105,5 +109,33 @@ public abstract class NamedResource implements UrlResource {
return resource;
}
+ public <T> T post(Class<T> type, Entity requestEntity) {
+ return post(true,type,requestEntity,null,false);
+
+ }
+
+ //Used for empty posts
+ public <T> T post( boolean useToken, Class<T> type, Map entity, final QueryParameters queryParameters, boolean useBasicAuthentication ) {
+ WebResource resource = getResource(useToken);
+ resource = addParametersToResource(resource, queryParameters);
+ WebResource.Builder builder = resource
+ .type(MediaType.APPLICATION_JSON_TYPE)
+ .accept( MediaType.APPLICATION_JSON );
+
+ if(entity!=null){
+ builder.entity(entity);
+ }
+
+ if(useBasicAuthentication){
+ //added httpBasicauth filter to all setup calls because they all do verification this way.
+ HTTPBasicAuthFilter httpBasicAuthFilter = new HTTPBasicAuthFilter( "superuser","superpassword" );
+ resource.addFilter(httpBasicAuthFilter);
+ }
+
+ GenericType<T> gt = new GenericType<>((Class) type);
+ return builder.post(gt.getRawClass());
+
+ }
+
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
index 2786cb0..1b7202a 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
@@ -55,6 +55,11 @@ public class OrgResource extends NamedResource {
return new OrganizationResource( orgname,context,this );
}
+ public OrganizationResource org( final String orgname ){
+ return new OrganizationResource( orgname,context,this );
+ }
+
+
/**
* This post is for the POST params case, where the entire call is made using queryParameters.
*/
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f61b5a13/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java
index cb4d286..b029949 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java
@@ -48,6 +48,15 @@ public class TokenResource extends NamedResource {
return token;
}
+ public Token get(String username, String password){
+ QueryParameters queryParameters = new QueryParameters();
+ queryParameters.addParam( "grant_type", "password" );
+ queryParameters.addParam( "username", username );
+ queryParameters.addParam( "password", password );
+ return get(queryParameters);
+
+ }
+
/**
* Obtains an access token and sets the token for the context to use in later calls
*
[5/8] usergrid git commit: Add additional functionality in REST layer
for checking permissions.
Posted by mr...@apache.org.
Add additional functionality in REST layer for checking permissions.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/8dddc0eb
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/8dddc0eb
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/8dddc0eb
Branch: refs/heads/hotfix-2.0.0
Commit: 8dddc0eb7a615d4f6b5110f3dd772218e8bb2d3c
Parents: 5732dee
Author: Michael Russo <mi...@gmail.com>
Authored: Fri Dec 4 21:05:41 2015 -0800
Committer: Michael Russo <mi...@gmail.com>
Committed: Fri Dec 4 21:05:41 2015 -0800
----------------------------------------------------------------------
.../rest/applications/ApplicationResource.java | 1 +
.../rest/applications/AuthResource.java | 7 ++
.../applications/assets/AssetsResource.java | 8 +-
.../rest/applications/queues/QueueResource.java | 10 ++
.../queues/QueueSubscriberResource.java | 5 +
.../queues/QueueSubscriptionResource.java | 5 +
.../queues/QueueTransactionsResource.java | 3 +
.../security/SecuredResourceFilterFactory.java | 74 +++++++++--
.../annotations/CheckPermissionsForPath.java | 32 +++++
.../usergrid/rest/applications/SecurityIT.java | 124 +++++++++++++++++++
10 files changed, 258 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java
index 2c252e7..5b3a9af 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/ApplicationResource.java
@@ -125,6 +125,7 @@ public class ApplicationResource extends ServiceResource {
}
+ @RequireApplicationAccess
@Path("auth")
public AuthResource getAuthResource() throws Exception {
return getSubResource( AuthResource.class );
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/AuthResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/AuthResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/AuthResource.java
index 46e97c7..a8549d1 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/AuthResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/AuthResource.java
@@ -30,6 +30,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -87,6 +88,7 @@ public class AuthResource extends AbstractContextResource {
// TODO add auth for Ping Identity
+ @CheckPermissionsForPath
@POST
@Path("facebook")
@Consumes(APPLICATION_FORM_URLENCODED)
@@ -100,6 +102,7 @@ public class AuthResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
@Path("pingident")
public Response authPingIdent( @Context UriInfo ui, @QueryParam("ping_access_token") String pingToken,
@@ -132,6 +135,7 @@ public class AuthResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@POST
@Path("pingident")
public Response authPingIdentPost( @Context UriInfo ui, @QueryParam("ping_access_token") String pingToken,
@@ -170,6 +174,7 @@ public class AuthResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
@Path("facebook")
public Response authFB( @Context UriInfo ui, @QueryParam("fb_access_token") String fb_access_token,
@@ -204,6 +209,7 @@ public class AuthResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@POST
@Path("foursquare")
@Consumes(APPLICATION_FORM_URLENCODED)
@@ -217,6 +223,7 @@ public class AuthResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
@Path("foursquare")
public Response authFQ( @Context UriInfo ui, @QueryParam("fq_access_token") String fq_access_token,
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/assets/AssetsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/assets/AssetsResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/assets/AssetsResource.java
index b43827b..aeffe3b 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/assets/AssetsResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/assets/AssetsResource.java
@@ -39,6 +39,7 @@ import javax.ws.rs.core.PathSegment;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -107,8 +108,8 @@ public class AssetsResource extends ServiceResource {
}
+ @CheckPermissionsForPath
@POST
- @RequireApplicationAccess
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Path("{entityId: [A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}}/data")
public Response uploadData( @FormDataParam("file") InputStream uploadedInputStream,
@@ -129,8 +130,8 @@ public class AssetsResource extends ServiceResource {
}
+ @CheckPermissionsForPath
@PUT
- @RequireApplicationAccess
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Path("{entityId: [A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}}/data")
public Response uploadDataStreamPut( @PathParam("entityId") PathSegment entityId, InputStream uploadedInputStream )
@@ -139,8 +140,8 @@ public class AssetsResource extends ServiceResource {
}
+ @CheckPermissionsForPath
@POST
- @RequireApplicationAccess
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
@Path("{entityId: [A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}}/data")
public Response uploadDataStream( @PathParam("entityId") PathSegment entityId, InputStream uploadedInputStream )
@@ -158,6 +159,7 @@ public class AssetsResource extends ServiceResource {
}
+ @CheckPermissionsForPath
@GET
@Path("{entityId: [A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}}/data")
public Response findAsset( @Context UriInfo ui, @QueryParam("callback") @DefaultValue("callback") String callback,
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueResource.java
index 67498cd..de71073 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueResource.java
@@ -35,6 +35,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
@@ -86,6 +87,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("subscribers")
public QueueSubscriberResource getSubscribers( @Context UriInfo ui ) throws Exception {
@@ -95,6 +97,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("subscriptions")
public QueueSubscriptionResource getSubscriptions( @Context UriInfo ui ) throws Exception {
@@ -104,6 +107,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("properties")
@GET
public JSONWithPadding getProperties( @Context UriInfo ui,
@@ -116,6 +120,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("properties")
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@@ -129,6 +134,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
public JSONWithPadding executeGet( @Context UriInfo ui, @QueryParam("start") String firstQueuePath,
@QueryParam("limit") @DefaultValue("10") int limit,
@@ -149,6 +155,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@SuppressWarnings("unchecked")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@@ -173,6 +180,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public JSONWithPadding executePut( @Context UriInfo ui, Map<String, Object> json,
@@ -187,6 +195,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@DELETE
public JSONWithPadding executeDelete( @Context UriInfo ui,
@QueryParam("callback") @DefaultValue("callback") String callback )
@@ -195,6 +204,7 @@ public class QueueResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("transactions")
public QueueTransactionsResource getTransactions( @Context UriInfo ui ) throws Exception {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriberResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriberResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriberResource.java
index 12db937..7f32be0 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriberResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriberResource.java
@@ -34,6 +34,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
@@ -92,6 +93,7 @@ public class QueueSubscriberResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
public JSONWithPadding executeGet( @Context UriInfo ui, @QueryParam("start") String firstSubscriberQueuePath,
@QueryParam("limit") @DefaultValue("10") int limit,
@@ -106,6 +108,7 @@ public class QueueSubscriberResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@POST
@Consumes(MediaType.APPLICATION_JSON)
public JSONWithPadding executePost( @Context UriInfo ui, EntityHolder<Map<String, Object>> body,
@@ -118,6 +121,7 @@ public class QueueSubscriberResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public JSONWithPadding executePut( @Context UriInfo ui, EntityHolder<Map<String, Object>> body,
@@ -143,6 +147,7 @@ public class QueueSubscriberResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@DELETE
public JSONWithPadding executeDelete( @Context UriInfo ui,
@QueryParam("callback") @DefaultValue("callback") String callback )
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriptionResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriptionResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriptionResource.java
index a822b1e..c488095 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriptionResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueSubscriptionResource.java
@@ -34,6 +34,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
@@ -94,6 +95,7 @@ public class QueueSubscriptionResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@GET
public JSONWithPadding executeGet( @Context UriInfo ui, @QueryParam("start") String firstSubscriptionQueuePath,
@QueryParam("limit") @DefaultValue("10") int limit,
@@ -108,6 +110,7 @@ public class QueueSubscriptionResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@POST
@Consumes(MediaType.APPLICATION_JSON)
public JSONWithPadding executePost( @Context UriInfo ui, EntityHolder<Map<String, Object>> body,
@@ -120,6 +123,7 @@ public class QueueSubscriptionResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public JSONWithPadding executePut( @Context UriInfo ui, EntityHolder<Map<String, Object>> body,
@@ -145,6 +149,7 @@ public class QueueSubscriptionResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@DELETE
public JSONWithPadding executeDelete( @Context UriInfo ui,
@QueryParam("callback") @DefaultValue("callback") String callback )
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueTransactionsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueTransactionsResource.java b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueTransactionsResource.java
index 2f9819d..56cca2c 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueTransactionsResource.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/applications/queues/QueueTransactionsResource.java
@@ -30,6 +30,7 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriInfo;
+import org.apache.usergrid.rest.security.annotations.CheckPermissionsForPath;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Scope;
@@ -70,6 +71,7 @@ public class QueueTransactionsResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("{id}")
@PUT
public JSONWithPadding updateTransaction( @Context UriInfo ui, @PathParam("id") UUID transactionId,
@@ -84,6 +86,7 @@ public class QueueTransactionsResource extends AbstractContextResource {
}
+ @CheckPermissionsForPath
@Path("{id}")
@DELETE
public JSONWithPadding removeTransaction( @Context UriInfo ui, @PathParam("id") UUID transactionId,
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java b/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
index 202eb31..2699938 100644
--- a/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/security/SecuredResourceFilterFactory.java
@@ -26,6 +26,8 @@ import javax.ws.rs.core.Context;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.UriInfo;
+import org.apache.shiro.subject.Subject;
+import org.apache.usergrid.rest.security.annotations.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -37,10 +39,6 @@ import org.apache.usergrid.persistence.EntityManager;
import org.apache.usergrid.persistence.EntityManagerFactory;
import org.apache.usergrid.persistence.index.query.Identifier;
import org.apache.usergrid.rest.exceptions.SecurityException;
-import org.apache.usergrid.rest.security.annotations.RequireAdminUserAccess;
-import org.apache.usergrid.rest.security.annotations.RequireApplicationAccess;
-import org.apache.usergrid.rest.security.annotations.RequireOrganizationAccess;
-import org.apache.usergrid.rest.security.annotations.RequireSystemAccess;
import org.apache.usergrid.rest.utils.PathingUtils;
import org.apache.usergrid.security.shiro.utils.SubjectUtils;
import org.apache.usergrid.services.ServiceManagerFactory;
@@ -54,10 +52,7 @@ import com.sun.jersey.spi.container.ResourceFilterFactory;
import static org.apache.commons.lang.StringUtils.isNotEmpty;
import static org.apache.usergrid.rest.exceptions.SecurityException.mappableSecurityException;
-import static org.apache.usergrid.security.shiro.utils.SubjectUtils.isPermittedAccessToApplication;
-import static org.apache.usergrid.security.shiro.utils.SubjectUtils.isPermittedAccessToOrganization;
-import static org.apache.usergrid.security.shiro.utils.SubjectUtils.isUser;
-import static org.apache.usergrid.security.shiro.utils.SubjectUtils.loginApplicationGuest;
+import static org.apache.usergrid.security.shiro.utils.SubjectUtils.*;
@Component
@@ -131,6 +126,9 @@ public class SecuredResourceFilterFactory implements ResourceFilterFactory {
else if ( am.isAnnotationPresent( RequireAdminUserAccess.class ) ) {
return Collections.<ResourceFilter>singletonList( new AdminUserFilter() );
}
+ else if ( am.isAnnotationPresent( CheckPermissionsForPath.class ) ) {
+ return Collections.<ResourceFilter>singletonList( new PathPermissionsFilter() );
+ }
return null;
}
@@ -328,4 +326,64 @@ public class SecuredResourceFilterFactory implements ResourceFilterFactory {
}
}
}
+
+ // This filter is created in REST from logic in org.apache.usergrid.services.AbstractService.checkPermissionsForPath
+ public class PathPermissionsFilter extends AbstractFilter {
+
+ public PathPermissionsFilter() {}
+
+
+ @Override
+ public void authorize( ContainerRequest request ) {
+ if(logger.isDebugEnabled()){
+ logger.debug( "PathPermissionsFilter.authorize" );
+ }
+
+ final String PATH_MSG =
+ "---- Checked permissions for path --------------------------------------------\n" + "Requested path: {} \n"
+ + "Requested action: {} \n" + "Requested permission: {} \n" + "Permitted: {} \n";
+
+ ApplicationInfo application;
+
+ try {
+
+ application = management.getApplicationInfo( getApplicationIdentifier() );
+ EntityManager em = emf.getEntityManager( application.getId() );
+ Subject currentUser = SubjectUtils.getSubject();
+
+ if ( currentUser == null ) {
+ return;
+ }
+ String applicationName = application.getName().toLowerCase();
+ String operation = request.getMethod().toLowerCase();
+ String path = request.getPath().toLowerCase().replace(applicationName, "");
+ String perm = getPermissionFromPath( em.getApplicationRef().getUuid(), operation, path );
+
+ boolean permitted = currentUser.isPermitted( perm );
+ if ( logger.isDebugEnabled() ) {
+ logger.debug( PATH_MSG, new Object[] { path, operation, perm, permitted } );
+ }
+
+ if(!permitted){
+ // throwing this so we can raise a proper mapped REST exception
+ throw new Exception("Subject not permitted");
+ }
+
+
+ SubjectUtils.checkPermission( perm );
+ Subject subject = SubjectUtils.getSubject();
+
+ if ( logger.isDebugEnabled() ) {
+ logger.debug("Checked subject {} for perm {}", subject != null ? subject.toString() : "", perm);
+ logger.debug("------------------------------------------------------------------------------");
+ }
+
+
+ } catch (Exception e){
+ throw mappableSecurityException( "unauthorized",
+ "Subject does not have permission to access this resource" );
+ }
+
+ }
+ }
}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/main/java/org/apache/usergrid/rest/security/annotations/CheckPermissionsForPath.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/main/java/org/apache/usergrid/rest/security/annotations/CheckPermissionsForPath.java b/stack/rest/src/main/java/org/apache/usergrid/rest/security/annotations/CheckPermissionsForPath.java
new file mode 100644
index 0000000..5f0e00d
--- /dev/null
+++ b/stack/rest/src/main/java/org/apache/usergrid/rest/security/annotations/CheckPermissionsForPath.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.usergrid.rest.security.annotations;
+
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+
+/** Requires that the current Shiro security subject be the user specified in the current REST request path. */
+@Retention(value = RUNTIME)
+@Target(value = { METHOD })
+public @interface CheckPermissionsForPath {
+
+}
http://git-wip-us.apache.org/repos/asf/usergrid/blob/8dddc0eb/stack/rest/src/test/java/org/apache/usergrid/rest/applications/SecurityIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/SecurityIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/SecurityIT.java
new file mode 100644
index 0000000..9542511
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/SecurityIT.java
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.
+ */
+package org.apache.usergrid.rest.applications;
+
+
+import com.sun.jersey.api.client.UniformInterfaceException;
+import org.apache.usergrid.rest.AbstractRestIT;
+import org.apache.usergrid.utils.UUIDUtils;
+import org.codehaus.jackson.JsonNode;
+import org.junit.Test;
+import javax.ws.rs.core.MediaType;
+import java.util.UUID;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * These tests will execute requests against certain paths (with or without credentials) to ensure access is being
+ * allowed according to the REST and Services permissions defined for the resource.
+ */
+public class SecurityIT extends AbstractRestIT {
+
+ final String BASE_PATH = "/test-organization/test-app";
+ final int UNAUTHORIZED_STATUS = 401;
+
+ @Test
+ public void testAssetsNoCredentials(){
+
+ final UUID uuid = UUIDUtils.newTimeUUID();
+ int responseStatus = 0;
+
+ try {
+ // intentionally do not add access_token
+ resource().path(BASE_PATH + "/assets/" + uuid + "/data")
+ .accept(MediaType.APPLICATION_JSON_TYPE)
+ .get(JsonNode.class);
+ }
+ catch (UniformInterfaceException uie ) {
+ responseStatus = uie.getResponse().getStatus();
+ }
+ assertEquals(UNAUTHORIZED_STATUS, responseStatus);
+ }
+
+ @Test
+ public void testFacebookAuthNoCredentials(){
+
+ int responseStatus = 0;
+
+ try {
+ // intentionally do not add access_token
+ resource().path(BASE_PATH + "/auth/facebook")
+ .accept(MediaType.APPLICATION_JSON_TYPE)
+ .get(JsonNode.class);
+ }
+ catch (UniformInterfaceException uie ) {
+ responseStatus = uie.getResponse().getStatus();
+ }
+ assertEquals(UNAUTHORIZED_STATUS, responseStatus);
+ }
+
+ @Test
+ public void testPingIdentityAuthNoCredentials(){
+
+ int responseStatus = 0;
+
+ try {
+ // intentionally do not add access_token
+ resource().path(BASE_PATH + "/auth/pingident")
+ .accept(MediaType.APPLICATION_JSON_TYPE)
+ .get(JsonNode.class);
+ }
+ catch (UniformInterfaceException uie ) {
+ responseStatus = uie.getResponse().getStatus();
+ }
+ assertEquals(UNAUTHORIZED_STATUS, responseStatus);
+ }
+
+ @Test
+ public void testFoursquareAuthNoCredentials(){
+
+ int responseStatus = 0;
+
+ try {
+ // intentionally do not add access_token
+ resource().path(BASE_PATH + "/auth/foursquare")
+ .accept(MediaType.APPLICATION_JSON_TYPE)
+ .get(JsonNode.class);
+ }
+ catch (UniformInterfaceException uie ) {
+ responseStatus = uie.getResponse().getStatus();
+ }
+ assertEquals(UNAUTHORIZED_STATUS, responseStatus);
+ }
+
+ @Test
+ public void testQueuesNoCredentials(){
+
+ int responseStatus = 0;
+
+ try {
+ // intentionally do not add access_token
+ resource().path(BASE_PATH + "/queues")
+ .accept(MediaType.APPLICATION_JSON_TYPE)
+ .get(JsonNode.class);
+ }
+ catch (UniformInterfaceException uie ) {
+ responseStatus = uie.getResponse().getStatus();
+ }
+ assertEquals(UNAUTHORIZED_STATUS, responseStatus);
+ }
+
+}
[8/8] usergrid git commit: Clear ES index scrolls if the result set
is less than the requested limit.
Posted by mr...@apache.org.
Clear ES index scrolls if the result set is less than the requested limit.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/f89bbdbc
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/f89bbdbc
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/f89bbdbc
Branch: refs/heads/hotfix-2.0.0
Commit: f89bbdbc0e8b802be38d938a3c4539d6cc38f01e
Parents: e3b467d
Author: Michael Russo <mr...@apigee.com>
Authored: Tue Mar 29 13:10:11 2016 -0700
Committer: Michael Russo <mr...@apigee.com>
Committed: Tue Mar 29 13:10:11 2016 -0700
----------------------------------------------------------------------
.../index/impl/EsEntityIndexImpl.java | 32 +++++++++++++++-----
1 file changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/f89bbdbc/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 9add426..57d263e 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -54,9 +54,7 @@ import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
import org.elasticsearch.action.admin.indices.delete.DeleteIndexResponse;
import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.action.search.SearchRequestBuilder;
-import org.elasticsearch.action.search.SearchResponse;
-import org.elasticsearch.action.search.SearchScrollRequestBuilder;
+import org.elasticsearch.action.search.*;
import org.elasticsearch.client.AdminClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
@@ -390,6 +388,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
SearchResponse searchResponse;
+ String esScrollCursor = null;
if ( query.getCursor() == null ) {
SearchRequestBuilder srb = esProvider.getClient().prepareSearch( alias.getReadAlias() )
@@ -474,7 +473,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
}
//now get the cursor from the map and validate
- final String esScrollCursor = mapManager.getString( userCursorString );
+ esScrollCursor = mapManager.getString( userCursorString );
Preconditions.checkArgument(esScrollCursor != null, "Could not find a cursor for the value '{}' ", esScrollCursor);
@@ -502,11 +501,11 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
failureMonitor.success();
}
- return parseResults(searchResponse, query);
+ return parseResults(searchResponse, query, esScrollCursor );
}
- private CandidateResults parseResults( final SearchResponse searchResponse, final Query query ) {
+ private CandidateResults parseResults(final SearchResponse searchResponse, final Query query, String previousCursor) {
final SearchHits searchHits = searchResponse.getHits();
final SearchHit[] hits = searchHits.getHits();
@@ -546,6 +545,25 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
candidateResults.setCursor( userCursorString );
logger.debug(" User cursor = {}, Cursor = {} ", userCursorString, esScrollCursor);
+ }else{
+
+ // just execute this and not care about the response
+ logger.info("Candidate results size {} is less than limit {}, clearing next scroll ID {}",
+ candidateResults.size(), query.getLimit(), searchResponse.getScrollId());
+
+ ClearScrollRequestBuilder builder = esProvider.getClient().prepareClearScroll()
+ .addScrollId(searchResponse.getScrollId());
+
+ if( previousCursor != null){
+
+ logger.info("Candidate results size {} is less than limit {}, clearing previous scroll ID {}",
+ candidateResults.size(), query.getLimit(), previousCursor);
+
+ builder.addScrollId(previousCursor);
+ }
+
+ builder.execute().actionGet();
+
}
return candidateResults;
@@ -632,7 +650,7 @@ public class EsEntityIndexImpl implements AliasedEntityIndex {
failureMonitor.success();
- return parseResults(searchResponse, new Query());
+ return parseResults(searchResponse, new Query(), null);
}
[3/8] usergrid git commit: Organize imports. This closes #319.
Posted by mr...@apache.org.
Organize imports. This closes #319.
Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/86fac5e3
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/86fac5e3
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/86fac5e3
Branch: refs/heads/hotfix-2.0.0
Commit: 86fac5e36f5a8d1440c85cd39c3e9431856eae70
Parents: 1972937
Author: Dave Johnson <sn...@apache.org>
Authored: Thu Jul 23 11:30:50 2015 -0400
Committer: Dave Johnson <sn...@apache.org>
Committed: Thu Jul 23 11:30:50 2015 -0400
----------------------------------------------------------------------
.../usergrid/rest/management/AdminUsersIT.java | 58 +++----
.../cassandra/ManagementServiceImpl.java | 151 ++++---------------
.../apache/usergrid/management/EmailFlowIT.java | 71 ++-------
3 files changed, 64 insertions(+), 216 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/usergrid/blob/86fac5e3/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
index 375bbd9..2a68029 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java
@@ -17,53 +17,31 @@
package org.apache.usergrid.rest.management;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMultipart;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.jvnet.mock_javamail.Mailbox;
-
-
-
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.UniformInterfaceException;
+import com.sun.jersey.api.representation.Form;
import org.apache.usergrid.management.MockImapClient;
import org.apache.usergrid.persistence.index.utils.StringUtils;
import org.apache.usergrid.persistence.index.utils.UUIDUtils;
import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT;
import org.apache.usergrid.rest.test.resource2point0.endpoints.mgmt.ManagementResource;
-import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
-import org.apache.usergrid.rest.test.resource2point0.model.Entity;
-import org.apache.usergrid.rest.test.resource2point0.model.QueryParameters;
-import org.apache.usergrid.rest.test.resource2point0.model.Token;
+import org.apache.usergrid.rest.test.resource2point0.model.*;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.jvnet.mock_javamail.Mailbox;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import com.sun.jersey.api.representation.Form;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMultipart;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import org.apache.usergrid.rest.test.resource2point0.model.Organization;
-import org.apache.usergrid.rest.test.resource2point0.model.User;
+import static org.apache.usergrid.management.AccountCreationProps.*;
+import static org.junit.Assert.*;
/**
http://git-wip-us.apache.org/repos/asf/usergrid/blob/86fac5e3/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
----------------------------------------------------------------------
diff --git a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
index 47e32a8..9ee3a7b 100644
--- a/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
+++ b/stack/services/src/main/java/org/apache/usergrid/management/cassandra/ManagementServiceImpl.java
@@ -17,56 +17,24 @@
package org.apache.usergrid.management.cassandra;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-import java.util.UUID;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang.text.StrSubstitutor;
import org.apache.shiro.UnavailableSecurityManagerException;
import org.apache.usergrid.locking.Lock;
import org.apache.usergrid.locking.LockManager;
-import org.apache.usergrid.management.AccountCreationProps;
-import org.apache.usergrid.management.ActivationState;
-import org.apache.usergrid.management.ApplicationInfo;
-import org.apache.usergrid.management.ManagementService;
-import org.apache.usergrid.management.OrganizationInfo;
-import org.apache.usergrid.management.OrganizationOwnerInfo;
-import org.apache.usergrid.management.UserInfo;
-import org.apache.usergrid.management.exceptions.DisabledAdminUserException;
-import org.apache.usergrid.management.exceptions.DisabledAppUserException;
-import org.apache.usergrid.management.exceptions.IncorrectPasswordException;
-import org.apache.usergrid.management.exceptions.ManagementException;
-import org.apache.usergrid.management.exceptions.RecentlyUsedPasswordException;
-import org.apache.usergrid.management.exceptions.UnableToLeaveOrganizationException;
-import org.apache.usergrid.management.exceptions.UnactivatedAdminUserException;
-import org.apache.usergrid.management.exceptions.UnactivatedAppUserException;
-import org.apache.usergrid.management.exceptions.UnconfirmedAdminUserException;
-import org.apache.usergrid.persistence.CredentialsInfo;
-import org.apache.usergrid.persistence.Entity;
-import org.apache.usergrid.persistence.EntityManager;
-import org.apache.usergrid.persistence.EntityManagerFactory;
-import org.apache.usergrid.persistence.EntityRef;
-import org.apache.usergrid.persistence.exceptions.ApplicationAlreadyExistsException;
-import org.apache.usergrid.persistence.index.query.Identifier;
-import org.apache.usergrid.persistence.PagingResultsIterator;
-import org.apache.usergrid.persistence.Results;
-import org.apache.usergrid.persistence.SimpleEntityRef;
+import org.apache.usergrid.management.*;
+import org.apache.usergrid.management.exceptions.*;
+import org.apache.usergrid.persistence.*;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.Group;
import org.apache.usergrid.persistence.entities.User;
+import org.apache.usergrid.persistence.exceptions.ApplicationAlreadyExistsException;
import org.apache.usergrid.persistence.exceptions.DuplicateUniquePropertyExistsException;
import org.apache.usergrid.persistence.exceptions.EntityNotFoundException;
+import org.apache.usergrid.persistence.index.query.Identifier;
+import org.apache.usergrid.persistence.index.query.Query.Level;
import org.apache.usergrid.security.AuthPrincipalInfo;
import org.apache.usergrid.security.AuthPrincipalType;
import org.apache.usergrid.security.crypto.EncryptionService;
@@ -83,85 +51,28 @@ import org.apache.usergrid.security.tokens.TokenCategory;
import org.apache.usergrid.security.tokens.TokenInfo;
import org.apache.usergrid.security.tokens.TokenService;
import org.apache.usergrid.security.tokens.exceptions.TokenException;
-import org.apache.usergrid.services.ServiceAction;
-import org.apache.usergrid.services.ServiceManager;
-import org.apache.usergrid.services.ServiceManagerFactory;
-import org.apache.usergrid.services.ServiceRequest;
-import org.apache.usergrid.services.ServiceResults;
-import org.apache.usergrid.utils.ConversionUtils;
-import org.apache.usergrid.utils.JsonUtils;
-import org.apache.usergrid.utils.MailUtils;
-import org.apache.usergrid.utils.StringUtils;
-import org.apache.usergrid.utils.UUIDUtils;
+import org.apache.usergrid.services.*;
+import org.apache.usergrid.utils.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
-import com.google.common.collect.BiMap;
-import com.google.common.collect.HashBiMap;
+import java.nio.ByteBuffer;
+import java.util.*;
+import java.util.Map.Entry;
+import static java.lang.Boolean.parseBoolean;
import static org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString;
import static org.apache.commons.codec.digest.DigestUtils.sha;
import static org.apache.commons.lang.StringUtils.isBlank;
import static org.apache.usergrid.locking.LockHelper.getUniqueUpdateLock;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_ACTIVATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_CONFIRMATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_RESETPW_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_CONFIRMED_AWAITING_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_INVITED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_PASSWORD_RESET;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_USER_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_FOOTER;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ORGANIZATION_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ORGANIZATION_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ORGANIZATION_CONFIRMED_AWAITING_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ORGANIZATION_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ORGANIZATION_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_CONFIRMED_AWAITING_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_PASSWORD_RESET;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_PIN_REQUEST;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_MAILER_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATION_ACTIVATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SETUP_TEST_ACCOUNT;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_ALLOWED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_NAME;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_LOGIN_PASSWORD;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_NAME;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_USERNAME;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_APP;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ORGANIZATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_ACTIVATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_CONFIRMATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_RESETPW_URL;
+import static org.apache.usergrid.management.AccountCreationProps.*;
import static org.apache.usergrid.persistence.CredentialsInfo.getCredentialsSecret;
import static org.apache.usergrid.persistence.Schema.*;
import static org.apache.usergrid.persistence.Schema.PROPERTY_UUID;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_ACTOR;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_ACTOR_NAME;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_CATEGORY;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_CONTENT;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_DISPLAY_NAME;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_ENTITY_TYPE;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_OBJECT;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_OBJECT_ENTITY_TYPE;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_OBJECT_NAME;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_OBJECT_TYPE;
+import static org.apache.usergrid.persistence.entities.Activity.*;
import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_TITLE;
-import static org.apache.usergrid.persistence.entities.Activity.PROPERTY_VERB;
-import org.apache.usergrid.persistence.index.query.Query.Level;
-import static org.apache.usergrid.security.AuthPrincipalType.ADMIN_USER;
-import static org.apache.usergrid.security.AuthPrincipalType.APPLICATION;
-import static org.apache.usergrid.security.AuthPrincipalType.APPLICATION_USER;
-import static org.apache.usergrid.security.AuthPrincipalType.ORGANIZATION;
+import static org.apache.usergrid.security.AuthPrincipalType.*;
import static org.apache.usergrid.security.oauth.ClientCredentialsInfo.getTypeFromClientId;
import static org.apache.usergrid.security.oauth.ClientCredentialsInfo.getUUIDFromClientId;
import static org.apache.usergrid.security.tokens.TokenCategory.ACCESS;
@@ -176,8 +87,6 @@ import static org.apache.usergrid.utils.ListUtils.anyNull;
import static org.apache.usergrid.utils.MapUtils.hashMap;
import static org.apache.usergrid.utils.PasswordUtils.mongoPassword;
-import static java.lang.Boolean.parseBoolean;
-
public class ManagementServiceImpl implements ManagementService {
private static final Logger logger = LoggerFactory.getLogger( ManagementServiceImpl.class );
@@ -483,7 +392,7 @@ public class ManagementServiceImpl implements ManagementService {
public OrganizationOwnerInfo createOwnerAndOrganization( String organizationName, String username, String name,
String email, String password ) throws Exception {
- logger.debug("createOwnerAndOrganization1");
+ logger.debug( "createOwnerAndOrganization1" );
boolean activated = !newAdminUsersNeedSysAdminApproval() && !newOrganizationsNeedSysAdminApproval();
boolean disabled = newAdminUsersRequireConfirmation();
// if we are active and enabled, skip the send email step
@@ -499,7 +408,7 @@ public class ManagementServiceImpl implements ManagementService {
boolean disabled ) throws Exception {
logger.debug("createOwnerAndOrganization2");
return createOwnerAndOrganization( organizationName, username, name, email, password,
- activated, disabled, null, null );
+ activated, disabled, null, null );
}
@@ -595,8 +504,8 @@ public class ManagementServiceImpl implements ManagementService {
writeUserToken( smf.getManagementAppId(), organizationEntity, encryptionService
- .plainTextCredentials( generateOAuthSecretKey( AuthPrincipalType.ORGANIZATION ), user.getUuid(),
- smf.getManagementAppId() ) );
+ .plainTextCredentials( generateOAuthSecretKey( AuthPrincipalType.ORGANIZATION ), user.getUuid(),
+ smf.getManagementAppId() ) );
OrganizationInfo organization =
new OrganizationInfo( organizationEntity.getUuid(), organizationName, properties );
@@ -1037,7 +946,7 @@ public class ManagementServiceImpl implements ManagementService {
EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
Results results =
em.getCollection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), "users", null, 10000,
- Level.ALL_PROPERTIES, false );
+ Level.ALL_PROPERTIES, false );
for ( Entity entity : results.getEntities() ) {
users.add( getUserInfo( smf.getManagementAppId(), entity ) );
}
@@ -1476,7 +1385,7 @@ public class ManagementServiceImpl implements ManagementService {
? principal.getApplicationId() : smf.getManagementAppId() );
Entity entity = em.get( new SimpleEntityRef(
- principal.getType().getEntityType(), principal.getUuid()));
+ principal.getType().getEntityType(), principal.getUuid() ) );
return entity;
}
@@ -1549,7 +1458,7 @@ public class ManagementServiceImpl implements ManagementService {
BiMap<UUID, String> organizations = HashBiMap.create();
EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
Results results = em.getCollection( new SimpleEntityRef( User.ENTITY_TYPE, userId ), "groups", null, 1000,
- Level.ALL_PROPERTIES, false );
+ Level.ALL_PROPERTIES, false );
String path = null;
@@ -1696,7 +1605,7 @@ public class ManagementServiceImpl implements ManagementService {
}
em.removeFromCollection( new SimpleEntityRef( Group.ENTITY_TYPE, organizationId ), "users",
- new SimpleEntityRef( User.ENTITY_TYPE, userId ) );
+ new SimpleEntityRef( User.ENTITY_TYPE, userId ) );
}
@@ -1765,8 +1674,8 @@ public class ManagementServiceImpl implements ManagementService {
EntityManager em = emf.getEntityManager( smf.getManagementAppId() );
Results r = em.getConnectingEntities(
- new SimpleEntityRef(APPLICATION_INFO, applicationInfoId),
- "owns", "group", Level.ALL_PROPERTIES );
+ new SimpleEntityRef( APPLICATION_INFO, applicationInfoId ),
+ "owns", "group", Level.ALL_PROPERTIES );
Entity entity = r.getEntity();
if ( entity != null ) {
http://git-wip-us.apache.org/repos/asf/usergrid/blob/86fac5e3/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
----------------------------------------------------------------------
diff --git a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
index 26f150a..fc4a486 100644
--- a/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
+++ b/stack/services/src/test/java/org/apache/usergrid/management/EmailFlowIT.java
@@ -17,74 +17,35 @@
package org.apache.usergrid.management;
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.mail.Message;
-import javax.mail.MessagingException;
-import javax.mail.internet.MimeMultipart;
-
-import org.junit.ClassRule;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.jvnet.mock_javamail.Mailbox;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
+import net.jcip.annotations.NotThreadSafe;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.text.StrSubstitutor;
-
import org.apache.usergrid.ServiceITSetup;
import org.apache.usergrid.ServiceITSetupImpl;
-import org.apache.usergrid.cassandra.SpringResource;
import org.apache.usergrid.cassandra.ClearShiroSubject;
import org.apache.usergrid.management.cassandra.ManagementServiceImpl;
import org.apache.usergrid.persistence.EntityManager;
import org.apache.usergrid.persistence.SimpleEntityRef;
import org.apache.usergrid.persistence.entities.Application;
import org.apache.usergrid.persistence.entities.User;
-import org.apache.usergrid.persistence.index.impl.ElasticSearchResource;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TestName;
+import org.jvnet.mock_javamail.Mailbox;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
-import net.jcip.annotations.NotThreadSafe;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMultipart;
+import java.io.IOException;
+import java.util.*;
import static org.apache.commons.lang.StringUtils.isNotBlank;
-import static org.apache.usergrid.TestHelper.uniqueApp;
-import static org.apache.usergrid.TestHelper.uniqueEmail;
-import static org.apache.usergrid.TestHelper.uniqueOrg;
-import static org.apache.usergrid.TestHelper.uniqueUsername;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_USERS_REQUIRE_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_PASSWORD_RESET;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ADMIN_USER_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ORGANIZATION_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_ORGANIZATION_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ADMIN_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_SYSADMIN_ORGANIZATION_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_ACTIVATED;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_PASSWORD_RESET;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_EMAIL_USER_PIN_REQUEST;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_NOTIFY_ADMIN_OF_ACTIVATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORGANIZATIONS_REQUIRE_CONFIRMATION;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ADMIN_USERS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_SYSADMIN_APPROVES_ORGANIZATIONS;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_DEFAULT_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ADMIN_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_ORG_SYSADMIN_EMAIL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_ACTIVATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_CONFIRMATION_URL;
-import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_USER_RESETPW_URL;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertTrue;
+import static org.apache.usergrid.TestHelper.*;
+import static org.apache.usergrid.management.AccountCreationProps.*;
+import static org.junit.Assert.*;
/**