0
Answered

Need to be able to specify a proxy

Peter Wass 14 years ago in UNIFYBroker/Aurion updated by anonymous 9 years ago 15

In order to be able to contact Aurion in a hosted environment, the Connector needs to be able to specify a proxy. If this is not possible in a short time frame, let me know asap and I'll see if we can resolve it by bypassing the proxy. This invovles IT Security so may be a show stopper.

This currently effects: Broadband (Due: 30/6)
Will effect: ACMA / TGA

I have tried specifying the proxy in the communicator

<communicator uri="http://selfservice.asp.aurion.com.au/dbcdetst/servlet/services/ev397_aurion_ws?wsdl" credentials="DefaultCredentials" proxy="http://px04:8080" >
</communicator>

I have also tried a value of 'px04:8080' (no http).

Service cannot be started. Unify.Framework.UnifyServerInitializeException: Communicator configuration unknown setting of proxy ---> Unify.Framework.WebServiceCommunicatorException: Communicator configuration unknown setting of proxy ---> System.ArgumentException: Incorrect value proxy attribute in <communicator uri="http://selfservice.asp.aurion.com.au/dbcdetst/servlet/services/ev397_aurion_ws?wsdl" credentials="DefaultCredentials" proxy="http://px04:8080"></communicator> ---> System.ArgumentException: Requested value 'http://px04:8080' was not found.
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at Unify.Framework.XElementExtensions.ParseEnumT(String elementValue, XElement sourceElement, XName attributeName)
— End of inner exception stack trace —
at Unify.Framework.XElementExtensions.ParseEnumT(String elementValue, XElement sourceElement, XName attributeName)
at Unify.Framework.XElementExtensions.AttributeValueGenericT(XElement sourceElement, XName attributeName, T defaultValue,...

OK- Update

Set

	<system.net>
		<defaultProxy>
			<proxy usesystemdefault="true" proxyaddress="http://px04:8080" bypassonlocal="true" />
		</defaultProxy>
	</system.net>

in Unify.Service.Connect.exe.config

Service Starts. Now getting...

Timestamp Severity Source Module Message
24/06/2011 1:09:10 PM Warning Get all entities from connector failed. Connector "Get all entities from connector Aurion Employee Connector failed with reason The request failed with HTTP status 407: Proxy Authentication Required.. Duration: 00:00:00.0029298
Error details:
System.Net.WebException: The request failed with HTTP status 407: Proxy Authentication Required.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.AurionAPI.EV397_AURION_WSService.LOGON(String P_USER, String P_PASSWORD, String& P_TOKEN, String& P_MESSAGE, Decimal& P_STATUS)
at Unify.Communicators.AurionWebServiceApiCommunicator.Logon(String userName, String password)
at Unify.Communicators.AurionCommunicator.Open()
at Unify.Connectors.AurionGenericXmlObjectCommunicatorBridge.Open()
at Unify.Connectors.AurionGenericXmlReadingConnector.<GetAllEntities>d__3.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)"

Hi Peter,

Can you try changing it to "custom" and adding an additional attribute called "proxyUri" with the URI?

Furthermore, if you need to specify some credentials, change "DefaultCredentials" to "Custom" and use "domain", "user" and "password"/"securePassword" attributes to specify credentials accordingly.

Sorry that this isn't more clearly documented, it's a base communicator used for many connectors and I'm not sure where the information is.

The communicator configuration details should be the same as those for the TRIM connector IDBTRIM305:Communicator

Thanks guys - a lot further then before. I'm now getting two separate errors.

The employee connector gives:
Timestamp Severity Source Module Message
24/06/2011 1:37:11 PM Warning Get all entities from connector failed. Connector "Get all entities from connector Aurion Employee Connector failed with reason The ServicePointManager does not support proxies with the px04 scheme.. Duration: 00:00:00
Error details:
System.NotSupportedException: The ServicePointManager does not support proxies with the px04 scheme.
at System.Net.ServicePointManager.FindServicePointHelper(Uri address, Boolean isProxyServicePoint)
at System.Net.ServicePointManager.FindServicePoint(Uri address, IWebProxy proxy, ProxyChain& chain, HttpAbortDelegate& abortDelegate, Int32& abortState)
at System.Net.HttpWebRequest.FindServicePoint(Boolean forceFind)
at System.Net.HttpWebRequest.set_InternalProxy(IWebProxy value)
at System.Net.HttpWebRequest.set_Proxy(IWebProxy value)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebRequest(Uri uri)
at System.Web.Services.Protocols.SoapHttpClientProtocol.GetWebRequest(Uri uri)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.AurionAPI.EV397_AURION_WSService.LOGON(String P_USER, String P_PASSWORD, String& P_TOKEN, String& P_MESSAGE, Decimal& P_STATUS)
at Unify.Communicators.AurionWebServiceApiCommunicator.Logon(String userName, String password)
at Unify.Communicators.AurionCommunicator.Open()
at Unify.Connectors.AurionGenericXmlObjectCommunicatorBridge.Open()
at Unify.Connectors.AurionGenericXmlReadingConnector.<GetAllEntities>d__3.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)"


The Security User Connector gives:
Timestamp Severity Source Module Message
24/06/2011 1:37:11 PM Warning Get all entities from connector failed. Connector "Get all entities from connector Aurion Security Connector failed with reason The request failed with HTTP status 407: Proxy Authentication Required.. Duration: 00:00:00.0029298
Error details:
System.Net.WebException: The request failed with HTTP status 407: Proxy Authentication Required.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.AurionAPI.EV397_AURION_WSService.LOGON(String P_USER, String P_PASSWORD, String& P_TOKEN, String& P_MESSAGE, Decimal& P_STATUS)
at Unify.Communicators.AurionWebServiceApiCommunicator.Logon(String userName, String password)
at Unify.Communicators.AurionCommunicator.Open()
at Unify.Connectors.AurionGenericXmlObjectCommunicatorBridge.Open()
at Unify.Connectors.AurionGenericXmlReadingConnector.<GetAllEntities>d__3.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)"

I'm fine if the user has no rights but the different error from the employee connector I have no idea on.

Configuration

<communicator uri="http://selfservice.asp.aurion.com.au/dbcdetst/servlet/services/ev397_aurion_ws?wsdl" credentials="Custom" domain="dept" user="svc_im" securePassword="wJL6UplhBBEgc6WbWeTYC+5Wc+uQV3HyDUog6260O5I=" proxy="Custom" proxyUri="px04:8080">

Ignore me - I only changed Employee. The Security User one doesn't have the credentials in it yet so that error is fine.

Patrick

That worked. I'm now two more steps along.

I have used Custom credentials and got 407: Authentication required.

I reconfigured the service to use an account that would have rights to the proxy and used Default Credentials got 407: Authentication Required.

I have no found the address of the unauthenticated proxy at DBCDE and now get:
20110624,04:55:22,Change detection engine import all items failed.,Change detection engine,Warning,"Change detection engine import all items for connector Aurion Security Connector failed with reason The request failed with HTTP status 502: Bad Gateway.. Duration: 00:00:59.9817954
Error details:
System.Net.WebException: The request failed with HTTP status 502: Bad Gateway.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at Unify.Communicators.AurionAPI.EV397_AURION_WSService.LOGON(String P_USER, String P_PASSWORD, String& P_TOKEN, String& P_MESSAGE, Decimal& P_STATUS)
at Unify.Communicators.AurionWebServiceApiCommunicator.Logon(String userName, String password)
at Unify.Communicators.AurionCommunicator.Open()
at Unify.Connectors.AurionGenericXmlObjectCommunicatorBridge.Open()
at Unify.Connectors.AurionGenericXmlReadingConnector.<GetAllEntities>d__3.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal

502 shouldn't be our problem but I can't get any further diagnosing the problem.

No rush on this today - I have to leave to do an install at Environment so I won't get a chance to get back here until Monday.

Sudden thought: Would the service timing out produce a 502 when viewed through the proxy? Very possible. I'll do some research on that over the weekend.

Not sure - I've seen HTTP errors (500) before with timeout problems, but I don't think 59 seconds would be long enough to trigger it.

I'll keep looking at all the material you've provided and see if there's anything I can do. If not, I'll at least be ready on Monday to respond to anything we come up with.

Hi Peter,

Has there been any more progress with getting this issue resolved? I've had a brief look but it seems to me that the web service communicator is providing all the options required to account for a proxy server. Unless a clearer problem can be defined I'm not sure what technical change I could make to help you.

Resolved with the following:

  • Set URL to https://
  • Set Authentication to NONE
  • Set proxy to Unauthenticated proxy

Communication established successfully.