Changeset 642


Ignore:
Timestamp:
04/05/11 18:56:17 (2 years ago)
Author:
philsmart
Message:
 
Location:
raptor-web/trunk/src/main
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/engine/RaptorWebEngine.java

    r626 r642  
    7171        log.info("Attaching {} and retrieving abilities",entry); 
    7272        this.attachedMUA = entry; 
    73         currentlyAttachedCapabilities = ServiceEndpointClient.discoverMUACapabilities(attachedMUA.getServiceEndpoint()); 
     73        currentlyAttachedCapabilities = ServiceEndpointClient.discoverMUACapabilities(attachedMUA); 
    7474    } 
    7575 
     
    103103                } 
    104104            } 
    105             Capabilities capabilities = ServiceEndpointClient.discoverMUACapabilities(attached.getServiceEndpoint()); 
     105            Capabilities capabilities = ServiceEndpointClient.discoverMUACapabilities(attached); 
    106106            if (capabilities!=null && !capabilities.isError()){ 
    107107                log.debug("Has retrieved {} statistics", capabilities.getStatisticalServices().size()); 
     
    122122     */ 
    123123    public Capabilities getCapabilities(MUAEntry selectedEndpoint) { 
    124         return ServiceEndpointClient.discoverMUACapabilities(selectedEndpoint.getServiceEndpoint()); 
     124        return ServiceEndpointClient.discoverMUACapabilities(selectedEndpoint); 
    125125    } 
    126126 
     
    135135 
    136136    public AggregatorGraphModel invokeStatisticalUnit(StatisticalUnitInformation selectedStatisticalUnit) { 
    137         AggregatorGraphModel gmodel = ServiceEndpointClient.invokeStatisticalUnit(getCurrentlyAttached().getServiceEndpoint(), selectedStatisticalUnit.getStatisticParameters().getUnitName()); 
     137        AggregatorGraphModel gmodel = ServiceEndpointClient.invokeStatisticalUnit(getCurrentlyAttached(), selectedStatisticalUnit.getStatisticParameters().getUnitName()); 
    138138        return gmodel; 
    139139 
     
    141141 
    142142    public AggregatorGraphModel updateAndInvokeStatisticalUnit(StatisticalUnitInformation selectedStatisticalUnit) { 
    143         AggregatorGraphModel gmodel = ServiceEndpointClient.updateAndinvokeStatisticalUnit(getCurrentlyAttached().getServiceEndpoint(), selectedStatisticalUnit); 
     143        AggregatorGraphModel gmodel = ServiceEndpointClient.updateAndinvokeStatisticalUnit(getCurrentlyAttached(), selectedStatisticalUnit); 
    144144        return gmodel; 
    145145 
     
    173173        log.debug("Updating statistic {} ",model.getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getUnitName()); 
    174174        log.debug("Has startDate {}",model.getSelectedStatisticalUnit().getStatisticalUnitInformation().getStatisticParameters().getStartTimeAsDate()); 
    175         ServiceEndpointClient.updateStatisticalUnit(attachedMUA.getServiceEndpoint(),model.getSelectedStatisticalUnit().getStatisticalUnitInformation()); 
     175        ServiceEndpointClient.updateStatisticalUnit(attachedMUA,model.getSelectedStatisticalUnit().getStatisticalUnitInformation()); 
    176176    } 
    177177 
     
    200200        else 
    201201            function.setRequester("UNKNOWN"); 
    202         boolean success = ServiceEndpointClient.invokeAdministrativeFunction(attachedMUA.getServiceEndpoint(), function); 
     202        boolean success = ServiceEndpointClient.invokeAdministrativeFunction(attachedMUA, function); 
    203203        log.debug("Removal successfull {}",success); 
    204204        if (!success) model.setProcessingResult("ERROR: Entries did not remove"); 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/model/MUAEntry.java

    r365 r642  
    1010 * 
    1111 */ 
    12 public class MUAEntry implements Serializable{ 
     12public class MUAEntry implements Serializable { 
    1313 
    14         private String serviceEndpoint; 
    15         private boolean isAttached; 
     14    private String serviceEndpoint; 
     15    private boolean isAttached; 
    1616 
    17         public void setServiceEndpoint(String serviceEndpoint) { 
    18                 this.serviceEndpoint = serviceEndpoint; 
    19         } 
     17    /** They public key used to encrypt messages sent to this endpoint */ 
     18    private String publicKey; 
    2019 
    21         public String getServiceEndpoint() { 
    22                 return serviceEndpoint; 
    23         } 
     20    /** The password used to access the public key */ 
     21    private String publicKeyPassword; 
    2422 
    25         public void setIsAttached(boolean isAttached) { 
    26                 this.isAttached = isAttached; 
    27         } 
     23    public void setServiceEndpoint(String serviceEndpoint) { 
     24        this.serviceEndpoint = serviceEndpoint; 
     25    } 
    2826 
    29         public boolean getIsAttached() { 
    30                 return isAttached; 
    31         } 
     27    public String getServiceEndpoint() { 
     28        return serviceEndpoint; 
     29    } 
    3230 
    33         public String toString(){ 
    34             StringBuilder result = new StringBuilder(); 
    35             result.append(this.getClass().getName()); 
    36             result.append("Object{"); 
    37             result.append(serviceEndpoint); 
    38             result.append("}"); 
    39             return result.toString(); 
    40         } 
     31    public void setIsAttached(boolean isAttached) { 
     32        this.isAttached = isAttached; 
     33    } 
     34 
     35    public boolean getIsAttached() { 
     36        return isAttached; 
     37    } 
     38 
     39    public String toString() { 
     40        StringBuilder result = new StringBuilder(); 
     41        result.append(this.getClass().getName()); 
     42        result.append("Object{"); 
     43        result.append(serviceEndpoint); 
     44        result.append("}"); 
     45        return result.toString(); 
     46    } 
     47 
     48    /** 
     49     * @param publicKey the publicKey to set 
     50     */ 
     51    public void setPublicKey(String publicKey) { 
     52        this.publicKey = publicKey; 
     53    } 
     54 
     55    /** 
     56     * @return the publicKey 
     57     */ 
     58    public String getPublicKey() { 
     59        return publicKey; 
     60    } 
     61 
     62    /** 
     63     * @param publicKeyPassword the publicKeyPassword to set 
     64     */ 
     65    public void setPublicKeyPassword(String publicKeyPassword) { 
     66        this.publicKeyPassword = publicKeyPassword; 
     67    } 
     68 
     69    /** 
     70     * @return the publicKeyPassword 
     71     */ 
     72    public String getPublicKeyPassword() { 
     73        return publicKeyPassword; 
     74    } 
    4175 
    4276} 
  • raptor-web/trunk/src/main/java/uk/ac/cardiff/raptorweb/sei/ServiceEndpointClient.java

    r626 r642  
    11package uk.ac.cardiff.raptorweb.sei; 
    22 
     3import java.io.File; 
     4import java.io.FileInputStream; 
     5import java.io.FileNotFoundException; 
     6import java.io.IOException; 
     7import java.security.KeyStore; 
     8import java.security.KeyStoreException; 
     9import java.security.NoSuchAlgorithmException; 
     10import java.security.cert.CertificateException; 
    311import java.util.HashSet; 
    412import java.util.List; 
    513import java.util.Set; 
    614 
     15import javax.net.ssl.TrustManager; 
     16import javax.net.ssl.TrustManagerFactory; 
     17 
    718import org.apache.cxf.aegis.databinding.AegisDatabinding; 
    819import org.apache.cxf.binding.soap.SoapFault; 
     20import org.apache.cxf.configuration.jsse.TLSClientParameters; 
    921import org.apache.cxf.frontend.ClientProxy; 
    1022import org.apache.cxf.frontend.ClientProxyFactoryBean; 
     
    1931import uk.ac.cardiff.model.wsmodel.StatisticalUnitInformation; 
    2032import uk.ac.cardiff.raptor.remoting.server.sei.MultiUnitAggregator; 
    21  
     33import uk.ac.cardiff.raptorweb.model.MUAEntry; 
    2234 
    2335/** 
     
    2840 */ 
    2941public class ServiceEndpointClient { 
    30     static Logger log = LoggerFactory.getLogger(ServiceEndpointClient.class); 
    31  
    32     /** 
    33      * Method to determine and return the <code>Capabilities</code> of a MultiUnitAggregator. 
    34      * This method uses a hard set connection timeout of 10 miliseconds, and a receive timeout of 
    35      * 20 smilieconds, under the assumption that the capabilities of a MultiUnitAggregator can be sent 
    36      * inside small XML documents. 
     42 
     43    /** Class logger */ 
     44    private static final Logger log = LoggerFactory.getLogger(ServiceEndpointClient.class); 
     45 
     46    /** 
     47     * Method to determine and return the <code>Capabilities</code> of a MultiUnitAggregator. This method uses a hard set connection timeout of 10 miliseconds, 
     48     * and a receive timeout of 20 smilieconds, under the assumption that the capabilities of a MultiUnitAggregator can be sent inside small XML documents. 
    3749     * 
    3850     * @param endpoint 
    3951     * @return 
    4052     */ 
    41     public static Capabilities discoverMUACapabilities(String endpoint) { 
     53    public static Capabilities discoverMUACapabilities(MUAEntry endpoint) { 
    4254        Capabilities capabilities = null; 
    4355        try { 
     
    4557            factory.setServiceClass(MultiUnitAggregator.class); 
    4658            AegisDatabinding databinding = new AegisDatabinding(); 
    47             factory.setAddress(endpoint); 
     59            factory.setAddress(endpoint.getServiceEndpoint()); 
    4860            factory.getServiceFactory().setDataBinding(databinding); 
    4961 
     
    5567            httpClientPolicy.setReceiveTimeout(2000); 
    5668            httpConduit.setClient(httpClientPolicy); 
     69            httpConduit.setTlsClientParameters(getTlsSettings(endpoint)); 
    5770            log.debug("Accessing the MUA version " + client.getVersion()); 
    5871            capabilities = client.getCapabilities(); 
    59             log.debug("Retrieved capabilities from the MUA [{}]",endpoint); 
    60         } 
    61         catch (SoapFault e) { 
    62             log.error("Problem trying to retrieving capabilities from MUA [{}] -> {}", new Object[]{endpoint, e.getMessage()}); 
    63             capabilities = new Capabilities(); 
    64             capabilities.setError(true); 
    65             capabilities.setErrorMessage(e.getMessage()); 
    66            // e.printStackTrace(); 
    67         }catch (Exception e) { 
    68             log.error("Problem trying to retrieving capabilities from MUA [{}] -> {}", new Object[]{endpoint, e.getMessage()}); 
    69             capabilities = new Capabilities(); 
    70             capabilities.setError(true); 
    71             capabilities.setErrorMessage(e.getMessage()); 
    72             //e.printStackTrace(); 
     72            log.debug("Retrieved capabilities from the MUA [{}]", endpoint); 
     73        } catch (SoapFault e) { 
     74            log.error("Problem trying to retrieving capabilities from MUA [{}] -> {}", new Object[] { endpoint, e.getMessage() }); 
     75            capabilities = new Capabilities(); 
     76            capabilities.setError(true); 
     77            capabilities.setErrorMessage(e.getMessage()); 
     78            // e.printStackTrace(); 
     79        } catch (Exception e) { 
     80            log.error("Problem trying to retrieving capabilities from MUA [{}] -> {}", new Object[] { endpoint, e.getMessage() }); 
     81            capabilities = new Capabilities(); 
     82            capabilities.setError(true); 
     83            capabilities.setErrorMessage(e.getMessage()); 
     84            // e.printStackTrace(); 
    7385        } 
    7486        return capabilities; 
     
    7789 
    7890    /** 
    79      * This method sends a <code>StatisticalUnitInformaiton</code> instance to the MultiUnitAggregator <code>endpoint</code> 
    80      * The <code>StatisicalUnitInformation</code> instance encapsulates the parameters for a single statistical unit. 
    81      * Allowing the values to be sent back and changed on the MultiUnitAggregator 
     91     * This method sends a <code>StatisticalUnitInformaiton</code> instance to the MultiUnitAggregator <code>endpoint</code> The 
     92     * <code>StatisicalUnitInformation</code> instance encapsulates the parameters for a single statistical unit. Allowing the values to be sent back and 
     93     * changed on the MultiUnitAggregator 
    8294     * 
    8395     * @param endpoint 
     
    8597     * @return 
    8698     */ 
    87     public static Capabilities updateStatisticalUnit(String endpoint, StatisticalUnitInformation statisticalUnitInformation) { 
     99    public static Capabilities updateStatisticalUnit(MUAEntry endpoint, StatisticalUnitInformation statisticalUnitInformation) { 
    88100        Capabilities capabilities = null; 
    89101        try { 
     
    91103            factory.setServiceClass(MultiUnitAggregator.class); 
    92104            AegisDatabinding databinding = new AegisDatabinding(); 
    93             factory.setAddress(endpoint); 
    94             factory.getServiceFactory().setDataBinding(databinding); 
    95  
    96             MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
    97             org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
    98             HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
    99             HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
    100             httpClientPolicy.setConnectionTimeout(100000); 
    101             httpClientPolicy.setReceiveTimeout(200000); 
    102             httpConduit.setClient(httpClientPolicy); 
    103  
     105            factory.setAddress(endpoint.getServiceEndpoint()); 
     106            factory.getServiceFactory().setDataBinding(databinding); 
     107 
     108            MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
     109            org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
     110            HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
     111            HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
     112            httpClientPolicy.setConnectionTimeout(100000); 
     113            httpClientPolicy.setReceiveTimeout(200000); 
     114            httpConduit.setClient(httpClientPolicy); 
     115            httpConduit.setTlsClientParameters(getTlsSettings(endpoint)); 
    104116            log.debug("Accessing the MUA version {}", client.getVersion()); 
    105117            log.debug("Updating statistic {} from the MUA {}", statisticalUnitInformation.getStatisticParameters().getUnitName(), endpoint); 
     
    107119 
    108120        } catch (SoapFault e) { 
    109             log.error("Problem trying to update statistical unit {} on MUA [{}] -> {}", new Object[]{statisticalUnitInformation.getStatisticParameters().getUnitName(), endpoint, e.getMessage()}); 
    110             capabilities = new Capabilities(); 
    111             capabilities.setError(true); 
    112             capabilities.setErrorMessage(e.getMessage()); 
    113            // e.printStackTrace(); 
    114         }catch (Exception e) { 
    115             log.error("Problem trying to update statistical unit {} on MUA [{}] -> {}", new Object[]{statisticalUnitInformation.getStatisticParameters().getUnitName(), endpoint, e.getMessage()}); 
    116             capabilities = new Capabilities(); 
    117             capabilities.setError(true); 
    118             capabilities.setErrorMessage(e.getMessage()); 
    119            // e.printStackTrace(); 
     121            log.error("Problem trying to update statistical unit {} on MUA [{}] -> {}", new Object[] { statisticalUnitInformation.getStatisticParameters().getUnitName(), endpoint, e.getMessage() }); 
     122            capabilities = new Capabilities(); 
     123            capabilities.setError(true); 
     124            capabilities.setErrorMessage(e.getMessage()); 
     125            // e.printStackTrace(); 
     126        } catch (Exception e) { 
     127            log.error("Problem trying to update statistical unit {} on MUA [{}] -> {}", new Object[] { statisticalUnitInformation.getStatisticParameters().getUnitName(), endpoint, e.getMessage() }); 
     128            capabilities = new Capabilities(); 
     129            capabilities.setError(true); 
     130            capabilities.setErrorMessage(e.getMessage()); 
     131            // e.printStackTrace(); 
    120132        } 
    121133        return capabilities; 
     
    123135    } 
    124136 
    125  
    126137    /** 
    127138     * @param selectedStatisticalUnit 
    128139     */ 
    129     public static AggregatorGraphModel invokeStatisticalUnit(String endpoint, String selectedStatisticalUnit) { 
    130         try { 
    131             ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
    132             factory.setServiceClass(MultiUnitAggregator.class); 
    133             AegisDatabinding databinding = new AegisDatabinding(); 
    134             factory.setAddress(endpoint); 
    135             factory.getServiceFactory().setDataBinding(databinding); 
    136             MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
    137  
    138             org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
    139             HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
    140             HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
    141             httpClientPolicy.setConnectionTimeout(100000); 
    142             httpClientPolicy.setReceiveTimeout(200000); 
    143             httpConduit.setClient(httpClientPolicy); 
    144  
     140    public static AggregatorGraphModel invokeStatisticalUnit(MUAEntry endpoint, String selectedStatisticalUnit) { 
     141        try { 
     142            ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
     143            factory.setServiceClass(MultiUnitAggregator.class); 
     144            AegisDatabinding databinding = new AegisDatabinding(); 
     145            factory.setAddress(endpoint.getServiceEndpoint()); 
     146            factory.getServiceFactory().setDataBinding(databinding); 
     147            MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
     148 
     149            org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
     150            HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
     151            HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
     152            httpClientPolicy.setConnectionTimeout(100000); 
     153            httpClientPolicy.setReceiveTimeout(200000); 
     154            httpConduit.setClient(httpClientPolicy); 
     155            httpConduit.setTlsClientParameters(getTlsSettings(endpoint)); 
    145156            log.debug("Accessing the MUA version " + client.getVersion()); 
    146157            AggregatorGraphModel gmodel = client.invokeStatisticalUnit(selectedStatisticalUnit); 
     
    148159            return gmodel; 
    149160        } catch (SoapFault e) { 
    150             log.error("Problem trying to invoke statistical unit {} on MUA [{}] -> {}", new Object[]{selectedStatisticalUnit, endpoint, e.getMessage()}); 
    151         } catch (Exception e){ 
    152            //catching general errors, e.g. no connection to endpoint 
    153             log.error("Problem trying to invoke statistical unit {} on MUA [{}] -> {}", new Object[]{selectedStatisticalUnit, endpoint, e.getMessage()}); 
     161            log.error("Problem trying to invoke statistical unit {} on MUA [{}] -> {}", new Object[] { selectedStatisticalUnit, endpoint, e.getMessage() }); 
     162        } catch (Exception e) { 
     163            // catching general errors, e.g. no connection to endpoint 
     164            log.error("Problem trying to invoke statistical unit {} on MUA [{}] -> {}", new Object[] { selectedStatisticalUnit, endpoint, e.getMessage() }); 
    154165        } 
    155166 
     
    161172     * @param removeall 
    162173     */ 
    163     public static boolean invokeAdministrativeFunction(String endpoint, AdministrativeFunction function) { 
    164         try { 
    165             ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
    166             factory.setServiceClass(MultiUnitAggregator.class); 
    167             AegisDatabinding databinding = new AegisDatabinding(); 
    168             factory.setAddress(endpoint); 
    169             factory.getServiceFactory().setDataBinding(databinding); 
    170             MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
    171  
    172             org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
    173             HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
    174             HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
    175             httpClientPolicy.setConnectionTimeout(100000); 
    176             httpClientPolicy.setReceiveTimeout(200000); 
    177             httpConduit.setClient(httpClientPolicy); 
    178  
     174    public static boolean invokeAdministrativeFunction(MUAEntry endpoint, AdministrativeFunction function) { 
     175        try { 
     176            ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
     177            factory.setServiceClass(MultiUnitAggregator.class); 
     178            AegisDatabinding databinding = new AegisDatabinding(); 
     179            factory.setAddress(endpoint.getServiceEndpoint()); 
     180            factory.getServiceFactory().setDataBinding(databinding); 
     181            MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
     182 
     183            org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
     184            HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
     185            HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
     186            httpClientPolicy.setConnectionTimeout(100000); 
     187            httpClientPolicy.setReceiveTimeout(200000); 
     188            httpConduit.setClient(httpClientPolicy); 
     189            httpConduit.setTlsClientParameters(getTlsSettings(endpoint)); 
    179190            // client.invokeStatisticalUnit(selectedStatisticalUnit); 
    180             log.debug("Accessing the MUA version {}",client.getVersion()); 
     191            log.debug("Accessing the MUA version {}", client.getVersion()); 
    181192            boolean success = client.performAdministrativeFunction(function); 
    182193 
    183194            return success; 
    184         }catch (SoapFault e) { 
    185             log.error("Problem trying to perform administrative function {} on MUA {} -> {}  ", new Object[]{function.getAdministrativeFunction().toString(), endpoint, e.getMessage()}); 
     195        } catch (SoapFault e) { 
     196            log.error("Problem trying to perform administrative function {} on MUA {} -> {}  ", new Object[] { function.getAdministrativeFunction().toString(), endpoint, e.getMessage() }); 
    186197            return false; 
    187         } catch (Exception e){ 
    188             log.error("Problem trying to perform administrative function {} on MUA {} -> {} ", new Object[]{function.getAdministrativeFunction().toString(), endpoint, e.getMessage()}); 
    189             log.error("Details, {}",e); 
     198        } catch (Exception e) { 
     199            log.error("Problem trying to perform administrative function {} on MUA {} -> {} ", new Object[] { function.getAdministrativeFunction().toString(), endpoint, e.getMessage() }); 
     200            log.error("Details, {}", e); 
    190201            return false; 
    191202        } 
    192203 
    193  
    194     } 
    195  
    196     public static AggregatorGraphModel updateAndinvokeStatisticalUnit(String serviceEndpoint, StatisticalUnitInformation statisticalUnit) { 
    197         try { 
    198             ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
    199             factory.setServiceClass(MultiUnitAggregator.class); 
    200             AegisDatabinding databinding = new AegisDatabinding(); 
    201             factory.setAddress(serviceEndpoint); 
    202             factory.getServiceFactory().setDataBinding(databinding); 
    203             MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
    204  
    205             org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
    206             HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
    207             HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
    208             httpClientPolicy.setConnectionTimeout(100000); 
    209             httpClientPolicy.setReceiveTimeout(200000); 
    210             httpConduit.setClient(httpClientPolicy); 
    211  
     204    } 
     205 
     206    public static AggregatorGraphModel updateAndinvokeStatisticalUnit(MUAEntry endpoint, StatisticalUnitInformation statisticalUnit) { 
     207        try { 
     208            ClientProxyFactoryBean factory = new ClientProxyFactoryBean(); 
     209            factory.setServiceClass(MultiUnitAggregator.class); 
     210            AegisDatabinding databinding = new AegisDatabinding(); 
     211            factory.setAddress(endpoint.getServiceEndpoint()); 
     212            factory.getServiceFactory().setDataBinding(databinding); 
     213            MultiUnitAggregator client = (MultiUnitAggregator) factory.create(); 
     214 
     215            org.apache.cxf.endpoint.Client cl = ClientProxy.getClient(client); 
     216            HTTPConduit httpConduit = (HTTPConduit) cl.getConduit(); 
     217            HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy(); 
     218            httpClientPolicy.setConnectionTimeout(100000); 
     219            httpClientPolicy.setReceiveTimeout(200000); 
     220            httpConduit.setClient(httpClientPolicy); 
     221            httpConduit.setTlsClientParameters(getTlsSettings(endpoint)); 
    212222            log.debug("Accessing the MUA version " + client.getVersion()); 
    213223            AggregatorGraphModel gmodel = client.updateAndInvokeStatisticalUnit(statisticalUnit); 
    214             log.debug("Retrieved Graph Model from the MUA [" + serviceEndpoint + "]"); 
     224            log.debug("Retrieved Graph Model from the MUA [" + endpoint.getServiceEndpoint() + "]"); 
    215225            return gmodel; 
    216226        } catch (SoapFault e) { 
    217             log.error("Problem trying to update and invoke statistical unit {} on MUA with error {}",statisticalUnit.getStatisticParameters().getUnitName(), e.getMessage()); 
    218         } 
    219         catch (Exception e){ 
     227            log.error("Problem trying to update and invoke statistical unit {} on MUA with error {}", statisticalUnit.getStatisticParameters().getUnitName(), e.getMessage()); 
     228        } catch (Exception e) { 
    220229            log.error("Problem trying to update and invoke statistical unit {} on MUA {} ", statisticalUnit.getStatisticParameters().getUnitName(), e.getMessage()); 
    221230        } 
     
    223232    } 
    224233 
     234    private static TLSClientParameters getTlsSettings(MUAEntry endpoint) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, FileNotFoundException, IOException { 
     235 
     236        TLSClientParameters tls = new TLSClientParameters(); 
     237        tls.setDisableCNCheck(true);// disable URL and CN on cert match 
     238        KeyStore keyStore = KeyStore.getInstance("JKS"); 
     239        File truststore = new File(endpoint.getPublicKey()); 
     240        keyStore.load(new FileInputStream(truststore), endpoint.getPublicKeyPassword().toCharArray()); 
     241        TrustManagerFactory trustFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); 
     242        trustFactory.init(keyStore); 
     243        TrustManager[] tm = trustFactory.getTrustManagers(); 
     244        tls.setTrustManagers(tm); 
     245 
     246        return tls; 
     247 
     248    } 
     249 
    225250} 
  • raptor-web/trunk/src/main/webapp/WEB-INF/config/web-setup.xml

    r626 r642  
    1111                        <list> 
    1212                                <bean id="cardiffShibMUA" class="uk.ac.cardiff.raptorweb.model.MUAEntry"> 
    13                                         <property name="serviceEndpoint"><value>http://localhost:8080/MUA/MultiUnitAggregator</value></property> 
     13                                        <property name="serviceEndpoint"><value>https://localhost:8443/MUA/MultiUnitAggregator</value></property> 
    1414                                        <property name="isAttached" value="true"></property> 
     15                                        <property name="publicKey"><value>/Users/philsmart/Documents/Java/RaptorWorkspace/keys/raptor.jks</value></property> 
     16                    <property name="publicKeyPassword"><value>phil11</value></property> 
    1517                                </bean> 
    1618                        </list> 
Note: See TracChangeset for help on using the changeset viewer.