-// $Id$
/**
* Copyright (C) 2015 EDIT
* European Distributed Institute of Taxonomy
*/
package eu.etaxonomy.taxeditor.httpinvoker;
-import org.apache.log4j.Logger;
+import java.util.UUID;
+
+import org.apache.logging.log4j.LogManager;import org.apache.logging.log4j.Logger;
import org.junit.After;
import org.junit.Before;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
+import eu.etaxonomy.cdm.api.service.IUserService;
+import eu.etaxonomy.cdm.model.permission.Group;
+import eu.etaxonomy.cdm.model.permission.User;
+import eu.etaxonomy.taxeditor.remoting.cache.ConversationalTransientEntityCacher;
import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
import eu.etaxonomy.taxeditor.session.MockSessionOwner;
*/
public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
- private static final Logger logger = Logger.getLogger(RemotingSessionAwareTest.class);
+ private static final Logger logger = LogManager.getLogger(RemotingSessionAwareTest.class);
- protected CdmTransientEntityCacher cacher;
+ protected ConversationalTransientEntityCacher cacher;
protected MockSessionOwner sessionOwner;
+ private static String extraUsername = "Someone";
+ private static String extraPassword = "Password";
+ private static UUID editorGroupUuid = UUID.fromString("22e5e8af-b99c-4884-a92f-71978efd3770");
+
+
+ private IUserService userService = getRemoteApplicationController().getUserService();
@Before
public void initializeSession() {
- sessionOwner = new MockSessionOwner();
+ sessionOwner = new MockSessionOwner<>();
logger.info("created mock session owner : " + sessionOwner);
ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
sessionOwner.setCdmEntitySession(cdmEntitySession);
cacher = getCacher(sessionOwner);
+
+ UserDetails extraUser = null;
+
+ try {
+ extraUser = userService.loadUserByUsername(extraUsername);
+ Group editorGroup = getRemoteApplicationController().getGroupService().find(editorGroupUuid);
+ if (!((User)extraUser).getGroups().contains(editorGroup)){
+ ((User)extraUser).getGroups().add(editorGroup);
+ userService.merge(((User)extraUser), true);
+
+ }
+ } catch (UsernameNotFoundException unfe) {
+ UserDetails user = User.NewInstance(extraUsername, extraPassword);
+ user = userService.save((User)user);
+ //user = userService.find(((User)user).getUuid());
+ Group editorGroup = getRemoteApplicationController().getGroupService().find(editorGroupUuid);
+ ((User)user).getGroups().add(editorGroup);
+ userService.merge(((User)user), true);
+
+
+ }
+
+
}
@After
CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
logger.info("disposed of mock session owner : " + sessionOwner);
}
+
+
+ protected static void authenticateExtraUser() {
+
+ authenticate(extraUsername, extraPassword);
+ }
+
}