2 * Copyright (C) 2015 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.taxeditor
.httpinvoker
;
11 import org
.apache
.log4j
.Logger
;
12 import org
.junit
.After
;
13 import org
.junit
.Before
;
14 import org
.springframework
.security
.core
.userdetails
.UserDetails
;
15 import org
.springframework
.security
.core
.userdetails
.UsernameNotFoundException
;
17 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
18 import eu
.etaxonomy
.cdm
.api
.service
.IUserService
;
19 import eu
.etaxonomy
.cdm
.model
.common
.User
;
20 import eu
.etaxonomy
.taxeditor
.remoting
.cache
.CdmTransientEntityCacher
;
21 import eu
.etaxonomy
.taxeditor
.session
.ICdmEntitySession
;
22 import eu
.etaxonomy
.taxeditor
.session
.MockSessionOwner
;
29 public abstract class RemotingSessionAwareTest
extends BaseRemotingTest
{
31 private static final Logger logger
= Logger
.getLogger(RemotingSessionAwareTest
.class);
33 protected CdmTransientEntityCacher cacher
;
34 protected MockSessionOwner sessionOwner
;
36 private static String extraUsername
= "Someone";
37 private static String extraPassword
= "Password";
40 private IUserService userService
= getRemoteApplicationController().getUserService();
43 public void initializeSession() {
45 sessionOwner
= new MockSessionOwner();
46 logger
.info("created mock session owner : " + sessionOwner
);
47 ICdmEntitySession cdmEntitySession
= cdmEntitySessionManager
.newSession(sessionOwner
, true);
48 CdmApplicationState
.getCurrentDataChangeService().register(sessionOwner
);
49 sessionOwner
.setCdmEntitySession(cdmEntitySession
);
50 cacher
= getCacher(sessionOwner
);
52 UserDetails extraUser
= null;
55 extraUser
= userService
.loadUserByUsername(extraUsername
);
56 } catch (UsernameNotFoundException unfe
) {
57 User user
= User
.NewInstance(extraUsername
, extraPassword
);
58 userService
.createUser(user
);
65 public void postSessionAwareTest() {
66 sessionOwner
.dispose();
67 CdmApplicationState
.getCurrentDataChangeService().unregister(sessionOwner
);
68 logger
.info("disposed of mock session owner : " + sessionOwner
);
72 protected static void authenticateExtraUser() {
73 authenticate(extraUsername
, extraPassword
);