SubversionSCM.DescriptorImpl subversionDescriptor = (SubversionSCM.DescriptorImpl)getSCMDescriptor();
try {
Field credentialField = SubversionSCM.DescriptorImpl.class.getDeclaredField("credentials");
credentialField.setAccessible(true);
Map<String,Credential> credentials = (Map<String,Credential>)credentialField.get(subversionDescriptor);
Credential cred = credentials.get(realm);
if(cred == null){
LOGGER.severe("No credentials are stored in Hudson for realm ["+realm+"] !");
return null;
}
String kind = ISVNAuthenticationManager.PASSWORD;
if(scmUrl.startsWith("svn+ssh")){
kind = ISVNAuthenticationManager.SSH;
}
return createSCMCredentialConfiguration(cred.createSVNAuthentication(kind));
} catch (SecurityException e) {
LOGGER.log(Level.SEVERE, "'credentials' field not readable on SubversionSCM.DescriptorImpl !");
} catch (NoSuchFieldException e) {
LOGGER.log(Level.SEVERE, "'credentials' field not readable on SubversionSCM.DescriptorImpl !");
} catch (IllegalArgumentException e) {