3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.service
;
12 import java
.io
.IOException
;
14 import org
.apache
.commons
.codec
.binary
.Base64
;
15 import org
.apache
.commons
.httpclient
.methods
.PostMethod
;
16 import org
.apache
.http
.client
.methods
.HttpPost
;
17 import org
.springframework
.remoting
.httpinvoker
.HttpComponentsHttpInvokerRequestExecutor
;
18 import org
.springframework
.remoting
.httpinvoker
.HttpInvokerClientConfiguration
;
19 import org
.springframework
.security
.core
.Authentication
;
20 import org
.springframework
.security
.core
.context
.SecurityContext
;
22 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationState
;
29 public class CdmAuthenticatedHttpInvokerRequestExecutor
extends HttpComponentsHttpInvokerRequestExecutor
{
32 protected HttpPost
createHttpPost(HttpInvokerClientConfiguration config
) throws IOException
{
33 HttpPost postMethod
= super.createHttpPost(config
);
35 SecurityContext securityContext
= CdmApplicationState
.getCurrentSecurityContext();
36 if(securityContext
!= null) {
37 Authentication auth
= securityContext
.getAuthentication();
38 if ((auth
!= null) && (auth
.getName() != null) &&
39 (auth
.getCredentials() != null)) {
40 String base64
= auth
.getName() + ":" + auth
.getCredentials().toString();
41 postMethod
.setHeader("Authorization", "Basic " +
42 new String(Base64
.encodeBase64(base64
.getBytes())));