package org.cagrid.gts.ws.client; import org.apache.cxf.configuration.security.KeyStoreType; import org.cagrid.core.soapclient.AbstractSoapClient; import org.cagrid.gts.model.*; import org.cagrid.gts.service.exception.*; import org.cagrid.gts.wsrf.service.GTSService; import org.cagrid.gts.wsrf.stubs.*; import java.util.ArrayList; import java.util.List; /** * Created by langella on 2/18/14. */ public class GTSClient extends AbstractSoapClient<GTSService, GTSPortType> { public GTSClient(String url) { super(url, GTSService.class, GTSPortType.class); } public static void main(String[] args) { try { String url = "https://slavegts.training.cagrid.org:4443/gts"; GTSClient client = new GTSClient(url); KeyStoreType ts = new KeyStoreType(); ts.setFile("/Users/langella/Documents/caGrid/environments/keys/training-truststore.jks"); ts.setPassword("changeit"); client.setTruststore(ts); List<TrustedAuthority> list = client.findTrustedAuthorities(new TrustedAuthorityFilter()); for (TrustedAuthority ta : list) { System.out.println(ta.getName()); } } catch (Exception e) { e.printStackTrace(); } } public TrustedAuthority addTrustedAuthority(TrustedAuthority trustedAuthority) throws GTSInternalException, IllegalTrustedAuthorityException, PermissionDeniedException { AddTrustedAuthorityRequest req = new AddTrustedAuthorityRequest(); AddTrustedAuthorityRequest.Ta ta = new AddTrustedAuthorityRequest.Ta(); ta.setTrustedAuthority(trustedAuthority); req.setTa(ta); try { AddTrustedAuthorityResponse res = getClient().addTrustedAuthority(req); if (res != null) { return res.getTrustedAuthority(); } } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } return null; } public void updateTrustedAuthority(TrustedAuthority trustedAuthority) throws GTSInternalException, IllegalTrustedAuthorityException, InvalidTrustedAuthorityException, PermissionDeniedException { UpdateTrustedAuthorityRequest req = new UpdateTrustedAuthorityRequest(); UpdateTrustedAuthorityRequest.Ta ta = new UpdateTrustedAuthorityRequest.Ta(); ta.setTrustedAuthority(trustedAuthority); req.setTa(ta); try { getClient().updateTrustedAuthority(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } catch (InvalidTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } } public void removeTrustedAuthority(java.lang.String trustedAuthorityName) throws GTSInternalException, InvalidTrustedAuthorityException, PermissionDeniedException { try { RemoveTrustedAuthorityRequest req = new RemoveTrustedAuthorityRequest(); req.setTrustedAuthorityName(trustedAuthorityName); getClient().removeTrustedAuthority(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (InvalidTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } } public List<TrustedAuthority> findTrustedAuthorities(TrustedAuthorityFilter f) throws GTSInternalException { try { FindTrustedAuthoritiesRequest req = new FindTrustedAuthoritiesRequest(); FindTrustedAuthoritiesRequest.Filter filter = new FindTrustedAuthoritiesRequest.Filter(); filter.setTrustedAuthorityFilter(f); req.setFilter(filter); FindTrustedAuthoritiesResponse res = getClient().findTrustedAuthorities(req); if (res != null) { return res.getTrustedAuthority(); } return new ArrayList<TrustedAuthority>(); } catch (Exception e) { log.error(e.getMessage(), e); throw new GTSInternalException(null, e.getMessage()); } } public List<Permission> findPermissions(PermissionFilter f) throws GTSInternalException, PermissionDeniedException { try { FindPermissionsRequest req = new FindPermissionsRequest(); FindPermissionsRequest.Filter filter = new FindPermissionsRequest.Filter(); filter.setPermissionFilter(f); req.setFilter(filter); FindPermissionsResponse res = getClient().findPermissions(req); if (res != null) { return res.getPermission(); } else { return new ArrayList<Permission>(); } } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } } public void addPermission(Permission permission) throws GTSInternalException, IllegalPermissionException, PermissionDeniedException { try { AddPermissionRequest req = new AddPermissionRequest(); AddPermissionRequest.Permission perm = new AddPermissionRequest.Permission(); perm.setPermission(permission); req.setPermission(perm); getClient().addPermission(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalPermissionFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalPermissionException(e.getFaultInfo(), e.getMessage()); } } public void revokePermission(Permission permission) throws GTSInternalException, InvalidPermissionException, PermissionDeniedException { try { RevokePermissionRequest req = new RevokePermissionRequest(); RevokePermissionRequest.Permission perm = new RevokePermissionRequest.Permission(); perm.setPermission(permission); req.setPermission(perm); getClient().revokePermission(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (InvalidPermissionFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidPermissionException(e.getFaultInfo(), e.getMessage()); } } public void addTrustLevel(TrustLevel trustLevel) throws GTSInternalException, IllegalTrustLevelException, PermissionDeniedException { try { AddTrustLevelRequest req = new AddTrustLevelRequest(); AddTrustLevelRequest.TrustLevel tl = new AddTrustLevelRequest.TrustLevel(); tl.setTrustLevel(trustLevel); req.setTrustLevel(tl); getClient().addTrustLevel(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustLevelFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustLevelException(e.getFaultInfo(), e.getMessage()); } } public void updateTrustLevel(TrustLevel trustLevel) throws GTSInternalException, InvalidTrustLevelException, IllegalTrustLevelException, PermissionDeniedException { try { UpdateTrustLevelRequest req = new UpdateTrustLevelRequest(); UpdateTrustLevelRequest.TrustLevel tl = new UpdateTrustLevelRequest.TrustLevel(); tl.setTrustLevel(trustLevel); req.setTrustLevel(tl); getClient().updateTrustLevel(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (InvalidTrustLevelFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidTrustLevelException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustLevelFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustLevelException(e.getFaultInfo(), e.getMessage()); } } public void removeTrustLevel(String trustLevelName) throws GTSInternalException, InvalidTrustLevelException, IllegalTrustLevelException, PermissionDeniedException { try { RemoveTrustLevelRequest req = new RemoveTrustLevelRequest(); req.setTrustLevelName(trustLevelName); getClient().removeTrustLevel(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (InvalidTrustLevelFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidTrustLevelException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustLevelFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustLevelException(e.getFaultInfo(), e.getMessage()); } } public void updateAuthorityPriorities(AuthorityPriorityUpdate update) throws GTSInternalException, IllegalAuthorityException, PermissionDeniedException { try { UpdateAuthorityPrioritiesRequest req = new UpdateAuthorityPrioritiesRequest(); UpdateAuthorityPrioritiesRequest.AuthorityPriorityUpdate apu = new UpdateAuthorityPrioritiesRequest.AuthorityPriorityUpdate(); apu.setAuthorityPriorityUpdate(update); req.setAuthorityPriorityUpdate(apu); getClient().updateAuthorityPriorities(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalAuthorityException(e.getFaultInfo(), e.getMessage()); } } public void removeAuthority(String serviceURI) throws GTSInternalException, InvalidAuthorityException, PermissionDeniedException { try { RemoveAuthorityRequest req = new RemoveAuthorityRequest(); req.setServiceURI(serviceURI); getClient().removeAuthority(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (InvalidAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidAuthorityException(e.getFaultInfo(), e.getMessage()); } } public void addAuthority(AuthorityGTS gts) throws GTSInternalException, IllegalAuthorityException, PermissionDeniedException { try { AddAuthorityRequest req = new AddAuthorityRequest(); AddAuthorityRequest.AuthorityGTS auth = new AddAuthorityRequest.AuthorityGTS(); auth.setAuthorityGTS(gts); req.setAuthorityGTS(auth); getClient().addAuthority(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalAuthorityException(e.getFaultInfo(), e.getMessage()); } } public void updateAuthority(AuthorityGTS gts) throws GTSInternalException, IllegalAuthorityException, InvalidAuthorityException, PermissionDeniedException { try { UpdateAuthorityRequest req = new UpdateAuthorityRequest(); UpdateAuthorityRequest.AuthorityGTS auth = new UpdateAuthorityRequest.AuthorityGTS(); auth.setAuthorityGTS(gts); req.setAuthorityGTS(auth); getClient().updateAuthority(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalAuthorityException(e.getFaultInfo(), e.getMessage()); } catch (InvalidAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidAuthorityException(e.getFaultInfo(), e.getMessage()); } } public void updateCRL(String trustedAuthorityName, X509CRL crl) throws GTSInternalException, IllegalTrustedAuthorityException, InvalidTrustedAuthorityException, PermissionDeniedException { try { UpdateCRLRequest req = new UpdateCRLRequest(); req.setTrustedAuthorityName(trustedAuthorityName); UpdateCRLRequest.Crl ucrl = new UpdateCRLRequest.Crl(); ucrl.setX509CRL(crl); req.setCrl(ucrl); getClient().updateCRL(req); } catch (GTSInternalFaultFaultMessage e) { log.error(e.getMessage(), e); throw new GTSInternalException(e.getFaultInfo(), e.getMessage()); } catch (PermissionDeniedFaultFaultMessage e) { log.error(e.getMessage(), e); throw new PermissionDeniedException(e.getFaultInfo(), e.getMessage()); } catch (IllegalTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new IllegalTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } catch (InvalidTrustedAuthorityFaultFaultMessage e) { log.error(e.getMessage(), e); throw new InvalidTrustedAuthorityException(e.getFaultInfo(), e.getMessage()); } } public List<TrustLevel> getTrustLevels() throws GTSInternalException { try { GetTrustLevelsRequest req = new GetTrustLevelsRequest(); GetTrustLevelsResponse res = getClient().getTrustLevels(req); if (res != null) { return res.getTrustLevel(); } return new ArrayList<TrustLevel>(); } catch (Exception e) { log.error(e.getMessage(), e); throw new GTSInternalException(null, e.getMessage()); } } public List<AuthorityGTS> getAuthorities() throws GTSInternalException { try { GetAuthoritiesRequest req = new GetAuthoritiesRequest(); GetAuthoritiesResponse res = getClient().getAuthorities(req); if (res != null) { return res.getAuthorityGTS(); } return new ArrayList<AuthorityGTS>(); } catch (Exception e) { log.error(e.getMessage(), e); throw new GTSInternalException(null, e.getMessage()); } } }