Project

General

Profile

Download (10.4 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 * Copyright (C) 2007 EDIT
3
 * European Distributed Institute of Taxonomy
4
 * http://www.e-taxonomy.eu
5
 *
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.
8
 */
9
package eu.etaxonomy.cdm.api.application;
10

    
11
import java.util.EnumSet;
12

    
13
import org.springframework.security.authentication.ProviderManager;
14
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
15
import org.springframework.security.core.Authentication;
16
import org.springframework.security.core.context.SecurityContext;
17
import org.springframework.security.core.context.SecurityContextHolder;
18

    
19
import eu.etaxonomy.cdm.api.service.IAgentService;
20
import eu.etaxonomy.cdm.api.service.IAnnotationService;
21
import eu.etaxonomy.cdm.api.service.IClassificationService;
22
import eu.etaxonomy.cdm.api.service.ICollectionService;
23
import eu.etaxonomy.cdm.api.service.ICommonService;
24
import eu.etaxonomy.cdm.api.service.IDatabaseService;
25
import eu.etaxonomy.cdm.api.service.IDescriptionElementService;
26
import eu.etaxonomy.cdm.api.service.IDescriptionService;
27
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
28
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
29
import eu.etaxonomy.cdm.api.service.IEntityValidationService;
30
import eu.etaxonomy.cdm.api.service.IEventBaseService;
31
import eu.etaxonomy.cdm.api.service.IGrantedAuthorityService;
32
import eu.etaxonomy.cdm.api.service.IGroupService;
33
import eu.etaxonomy.cdm.api.service.IIdentificationKeyService;
34
import eu.etaxonomy.cdm.api.service.ILocationService;
35
import eu.etaxonomy.cdm.api.service.IMediaService;
36
import eu.etaxonomy.cdm.api.service.IMetadataService;
37
import eu.etaxonomy.cdm.api.service.INameService;
38
import eu.etaxonomy.cdm.api.service.IOccurrenceService;
39
import eu.etaxonomy.cdm.api.service.IPolytomousKeyNodeService;
40
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
41
import eu.etaxonomy.cdm.api.service.IPreferenceService;
42
import eu.etaxonomy.cdm.api.service.IProgressMonitorService;
43
import eu.etaxonomy.cdm.api.service.IReferenceService;
44
import eu.etaxonomy.cdm.api.service.IRegistrationService;
45
import eu.etaxonomy.cdm.api.service.IRightsService;
46
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
47
import eu.etaxonomy.cdm.api.service.ITaxonService;
48
import eu.etaxonomy.cdm.api.service.ITermNodeService;
49
import eu.etaxonomy.cdm.api.service.ITermService;
50
import eu.etaxonomy.cdm.api.service.ITermTreeService;
51
import eu.etaxonomy.cdm.api.service.IUserService;
52
import eu.etaxonomy.cdm.api.service.IVocabularyService;
53
import eu.etaxonomy.cdm.api.service.longrunningService.ILongRunningTasksService;
54
import eu.etaxonomy.cdm.api.service.media.MediaInfoFactory;
55
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
56
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
57
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
58
import eu.etaxonomy.cdm.api.service.registration.IRegistrationWorkingSetService;
59
import eu.etaxonomy.cdm.api.service.security.IAccountRegistrationService;
60
import eu.etaxonomy.cdm.api.service.security.IPasswordResetService;
61
import eu.etaxonomy.cdm.model.common.CdmBase;
62
import eu.etaxonomy.cdm.model.permission.CRUD;
63
import eu.etaxonomy.cdm.persistence.permission.ICdmPermissionEvaluator;
64

    
65
/**
66
 * @author a.mueller
67
 * @date 24.11.2022
68
 */
69
public abstract class CdmApplicationControllerBase<R extends ICdmRepository>
70
        implements ICdmRepository {
71

    
72
    protected R configuration;
73

    
74
    //** TODO Unclear methods, should they really be in base class?
75

    
76
    @Override
77
    public final ILongRunningTasksService getLongRunningTasksService(){
78
        return configuration.getLongRunningTasksService();
79
    }
80

    
81
    @Override
82
    public IPasswordResetService getPasswordResetService() {
83
        return configuration.getPasswordResetService();
84
    }
85

    
86
    @Override
87
    public IAccountRegistrationService getAccountRegistrationService() {
88
        return configuration.getAccountRegistrationService();
89
    }
90

    
91

    
92
    @Override
93
    public IRegistrationWorkingSetService getRegistrationWorkingSetService() {
94
        return configuration.getRegistrationWorkingSetService();
95
    }
96

    
97
    @Override
98
    public MediaInfoFactory getMediaInfoFactory() {
99
        return configuration.getMediaInfoFactory();
100
    }
101

    
102

    
103
    @Override
104
    public final IDatabaseService getDatabaseService(){
105
        return configuration.getDatabaseService();
106
    }
107

    
108

    
109
    /*..... **** Security ***** */
110

    
111
    @Override
112
    public void authenticate(String username, String password){
113
        UsernamePasswordAuthenticationToken tokenForUser = new UsernamePasswordAuthenticationToken(username, password);
114
        Authentication authentication = this.getAuthenticationManager().authenticate(tokenForUser);
115
        SecurityContext context = SecurityContextHolder.getContext();
116
        context.setAuthentication(authentication);
117
    }
118

    
119
    @Override
120
    public final ProviderManager getAuthenticationManager(){
121
        return configuration.getAuthenticationManager();
122
    }
123

    
124
    /**
125
     * @see org.springframework.security.access.PermissionEvaluator#hasPermission(org.springframework.security.core.Authentication,
126
     *      java.lang.Object, java.lang.Object)
127
     *
128
     * @param targetDomainObject
129
     * @param permission
130
     * @return
131
     */
132
    public boolean currentAuthentiationHasPermissions(CdmBase targetDomainObject, EnumSet<CRUD> permission){
133
        SecurityContext context = SecurityContextHolder.getContext();
134
        return getPermissionEvaluator().hasPermission(context.getAuthentication(), targetDomainObject, permission);
135
    }
136

    
137
    abstract protected void init();
138

    
139
    /* ****** Services ******** */
140
    @Override
141
    public final IAnnotationService getAnnotationService(){
142
        return configuration.getAnnotationService();
143
    }
144

    
145
    @Override
146
    public final INameService getNameService(){
147
        return configuration.getNameService();
148
    }
149

    
150
    @Override
151
    public final ITaxonService getTaxonService(){
152
        return configuration.getTaxonService();
153
    }
154

    
155
    @Override
156
    public final IClassificationService getClassificationService(){
157
        return configuration.getClassificationService();
158
    }
159

    
160
    @Override
161
    public final ITaxonNodeService getTaxonNodeService(){
162
        return configuration.getTaxonNodeService();
163
    }
164

    
165
    @Override
166
    public final IReferenceService getReferenceService(){
167
        return configuration.getReferenceService();
168
    }
169

    
170
    @Override
171
    public final IAgentService getAgentService(){
172
        return configuration.getAgentService();
173
    }
174

    
175
    @Override
176
    public final ITermService getTermService(){
177
        return configuration.getTermService();
178
    }
179

    
180
    @Override
181
    public final IDescriptionService getDescriptionService(){
182
        return configuration.getDescriptionService();
183
    }
184

    
185
    @Override
186
    public final IDescriptionElementService getDescriptionElementService(){
187
        return configuration.getDescriptionElementService();
188
    }
189

    
190
    @Override
191
    public final IOccurrenceService getOccurrenceService(){
192
        return configuration.getOccurrenceService();
193
    }
194

    
195
    @Override
196
    public IAmplificationService getAmplificationService(){
197
        return configuration.getAmplificationService();
198
    }
199

    
200
    @Override
201
    public ISequenceService getSequenceService(){
202
        return configuration.getSequenceService();
203
    }
204

    
205
    @Override
206
    public IEventBaseService getEventBaseService() {
207
        return configuration.getEventBaseService();
208
    }
209

    
210
    @Override
211
    public final IPrimerService getPrimerService(){
212
        return configuration.getPrimerService();
213
    }
214

    
215

    
216
    @Override
217
    public final IMediaService getMediaService(){
218
        return configuration.getMediaService();
219
    }
220

    
221

    
222
    @Override
223
    public final IMetadataService getMetadataService(){
224
        return configuration.getMetadataService();
225
    }
226

    
227

    
228
    @Override
229
    public final ICommonService getCommonService(){
230
        return configuration.getCommonService();
231
    }
232

    
233

    
234
    @Override
235
    public final ILocationService getLocationService(){
236
        return configuration.getLocationService();
237
    }
238

    
239

    
240
    @Override
241
    public final IUserService getUserService(){
242
        return configuration.getUserService();
243
    }
244

    
245

    
246
    @Override
247
    public final IGrantedAuthorityService getGrantedAuthorityService(){
248
        return configuration.getGrantedAuthorityService();
249
    }
250

    
251

    
252
    @Override
253
    public IGroupService getGroupService(){
254
        return configuration.getGroupService();
255
    }
256

    
257

    
258
    @Override
259
    public final ICollectionService getCollectionService(){
260
        return configuration.getCollectionService();
261
    }
262

    
263
    @Override
264
    public final ITermTreeService getTermTreeService(){
265
        return configuration.getTermTreeService();
266
    }
267

    
268
    @Override
269
    public final IPreferenceService getPreferenceService(){
270
        return configuration.getPreferenceService();
271
    }
272

    
273
    @Override
274
    public final ITermNodeService getTermNodeService(){
275
        return configuration.getTermNodeService();
276
    }
277

    
278
    @Override
279
    public final IVocabularyService getVocabularyService(){
280
        return configuration.getVocabularyService();
281
    }
282

    
283
    @Override
284
    public final IIdentificationKeyService getIdentificationKeyService(){
285
        return configuration.getIdentificationKeyService();
286
    }
287

    
288
    @Override
289
    public final IPolytomousKeyService getPolytomousKeyService(){
290
        return configuration.getPolytomousKeyService();
291
    }
292

    
293
    @Override
294
    public final IPolytomousKeyNodeService getPolytomousKeyNodeService(){
295
        return configuration.getPolytomousKeyNodeService();
296
    }
297

    
298
    @Override
299
    public IRightsService getRightsService() {
300
        return configuration.getRightsService();
301
    }
302

    
303
    @Override
304
    public IRegistrationService getRegistrationService() {
305
        return configuration.getRegistrationService();
306
    }
307

    
308
    @Override
309
    public IProgressMonitorService getProgressMonitorService() {
310
        return configuration.getProgressMonitorService();
311
    }
312

    
313
    @Override
314
    public IEntityValidationService getEntityValidationService(){
315
        return configuration.getEntityValidationService();
316
    }
317

    
318
    @Override
319
    public IEntityConstraintViolationService getEntityConstraintViolationService(){
320
        return configuration.getEntityConstraintViolationService();
321
    }
322

    
323
    @Override
324
    public final IDescriptiveDataSetService getDescriptiveDataSetService(){
325
        return configuration.getDescriptiveDataSetService();
326
    }
327

    
328
    @Override
329
    public ICdmPermissionEvaluator getPermissionEvaluator(){
330
        return configuration.getPermissionEvaluator();
331
    }
332

    
333

    
334

    
335

    
336

    
337
}
(4-4/14)