Xamarin forms web view redirect failing - xamarin.forms

Got an iOS issue with my XamForms web view. I have set the info.plist to allow NSAllowsArbitraryLoads
My URL is https://myurl.co.uk//rewards.html?sso=<GUID>&cid=<ID> - nothing out of the ordinary. When I hit go on Safari as a direct link (I type it in), the URL shows. No such luck on the Xamarin form view. Here I get the following throwback
2019-11-21 10:28:58.626694+0000 Perks.iOS[44969:1429154] [Common] _BSMachError: port 7903; (os/kern) invalid capability (0x14) "Unable to insert COPY_SEND"
2019-11-21 10:28:59.295901+0000 Perks.iOS[44969:1429327] [unspecified] container_system_group_path_for_identifier: error = (container_error_t)53
2019-11-21 10:28:59.522399+0000 Perks.iOS[44969:1429169] Connection 1: received failure notification
2019-11-21 10:28:59.522545+0000 Perks.iOS[44969:1429169] Connection 1: failed to connect 12:8, reason -1
2019-11-21 10:28:59.522637+0000 Perks.iOS[44969:1429169] Connection 1: encountered error(12:8)
2019-11-21 10:28:59.523727+0000 Perks.iOS[44969:1429290] Task <D57B535F-7434-4B60-9EBF-0490B8FCF2EF>.<0> HTTP load failed, 0/0 bytes (error code: -1003 [12:8])
2019-11-21 10:28:59.523851+0000 Perks.iOS[44969:1429290] NSURLConnection finished with error - code -1003
Any ideas on what is causing the issue? When I put the URL through postman, there is some JS on the redirected page, but it's not getting that far, so I'm guessing it's the web view at fault

Cause: Since iOS 9, iOS will only allow your application to communicate with servers that implement best-practice security by default. Values must be set in Info.plist to enable communication with insecure servers.
Solution: Add the following code in your info.plist to trust your domain.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>myurl.co.uk</key>
<dict>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>

Related

Flutter - http.get fails on macos build target: Connection failed

I started porting my Flutter app to macos Desktop. The UI started fine. However, as soon as the app makes a network call, it fails instantly with Connection failed (OS Error: Operation not permitted).
Running a one-liner:
final response = await http.get('https://jsonplaceholder.typicode.com/posts/1');
fails with:
Unhandled Exception: SocketException: Connection failed (OS Error:
Operation not permitted, errno = 1),
address = jsonplaceholder.typicode.com, port = 443
#0 IOClient.send (package:http/src/io_client.dart:33:23)
The macos build target comes from Google's sample here.
Flutter (Channel master, v1.9.8-pre.108)
Per my comment on the other answer, you should not use the Xcode capabilities UI for this. It will not correctly handle the two separate entitlement files in a Flutter project.
You need to add:
<key>com.apple.security.network.client</key>
<true/>
to macos/Runner/DebugProfile.entitlements and macos/Runner/Release.entitlements.
This is documented here and here.
Your macOS XCode project lacks Internet permission called "Outgoing Connections (Client)".
Open your macos xcode project - [root]/macos/Runner.xcworkspace
Click "Runner" in Project navigator - general settings will show up. Select "Capabilities" from tabbar and tick option "Outgoing Connections (Client)".
Rebuild your application inside XCode and launch the project.
If you are getting this error Only in Android release then Internet permission must be missing from main manifest. You just need to add Internet permission in Manifest file.
Just add this permission in manifest <uses-permission android:name="android.permission.INTERNET"/>
There are three manifest file available in Android folder
app/src/debug
app/src/main
app/src/profile

Could not authorize while connecting to the SonarQube server. Check your credentials and try again

I am trying to run SonarQube for my Xamarin Forms project, I am on the path where my .SLN file is there and executing the following command
Command:
$ mono /Users/akandasamy/Development/HIDProjects/sonar-scanner-msbuild-4.0.2.892/MSBuild.SonarQube.Runner.exe begin /k:"HIDReaderManagerApp" /d:sonar.host.url="http://localhost:9000" /d:sonar.login="My Login Token"
Error:
SonarQube Scanner for MSBuild 4.0.2
Default properties file was found at /Users/akandasamy/Development/HIDProjects/sonar-scanner-msbuild-4.0.2.892/SonarQube.Analysis.xml
Loading analysis properties from /Users/akandasamy/Development/HIDProjects/sonar-scanner-msbuild-4.0.2.892/SonarQube.Analysis.xml
Pre-processing started.
Preparing working directories...
17:29:10.391 Updating build integration targets...
17:29:10.414 Fetching analysis configuration settings...
17:29:10.517 Failed to request and parse 'http://localhost:9000/api/settings/values?component=HIDReaderManagerApp': The remote server returned an error: (401) .
17:29:10.517 Could not authorize while connecting to the SonarQube server. Check your credentials and try again.
17:29:10.518 Pre-processing failed. Exit code: 1
The api/settings/values API requires Browse permission when the component argument is used. Please, see if the user you are authenticating with has the aforementioned permission.
More details about security and permissions here:
https://docs.sonarqube.org/latest/instance-administration/security

WordPress Site Error failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found

I am trying to open a WordPress site on an external server for which I do not have a domain yet using its ip address and an adjusted HOST file on my Mac to check it on the server. When I access the site I get errors like:
Warning: file_get_contents(http://domain/folder/wp-content/themes/theme-name/img/phonehead.svg) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/user/domains/domain.com/public_html/folder/wp-content/themes/theme-name/inc/control/file.php on line 16
I did find some articles on the same issues like this one. The issues is not that the path is wrong or the file is not there. It seems that it has something to do with either my router or the way I use the hosts file to resolve the domain to the new ip address.
The hosts file line I added should be fine, so perhaps there is an issue with my D-Link DVG-N5412SP router is handling the request. But nowhere did I find how I can fix the issue. What do I need to adjust?
Update
From another location I got
Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /home/user/domains/domain.com/public_html/folder/wp-content/themes/theme/inc/control/THeaderControl.php on line 16
This might point me to the right direction. Working on it.
To make the path request local and not over the network I had to use the WordPress template tag get_template_directory() instead of get_bloginfo('stylesheet_directory') .

ClickOnce Application try to find an application manifest in a wrong location (strange parameters)

This is my third post on ClickOnce, but each of them has its own subject so I hope nobody minds this. I'm urgently migrating the existing app to the new server. I publish a ClickOnce application to a server (online usage only, not for install), and if I try to execute it via web browsers, I get a message box saying "Cannot continue. The Application is improperly formatted. Contact the application vendor for assistance.", the detail log of which includes below; (I masked some strings in the URL by *, as it was private information)
PLATFORM VERSION INFO
Windows : 5.1.2600.196608 (Win32NT)
Common Language Runtime : 4.0.30319.1
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment url: http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0 resulted in exception. Following failure messages were detected:
+ Exception reading manifest from http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0: the manifest may not be valid or the file could not be opened.
+ Manifest XML signature is not valid.
+ The digital signature of the object did not verify.
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [2012/07/24 13:16:39] : Activation of http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0 has started.
ERROR DETAILS
Following errors were detected during this operation.
* [2012/07/24 13:16:39] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Exception reading manifest from http://**.**.***.173:10080/*****/ClickOnce/*********.application?comid=*****&userjpname=************&userfullname=************&canregist=True&canmanage=True&systemid=0: the manifest may not be valid or the file could not be opened.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.Deployment.Application.InvalidDeploymentException (SignatureValidation)
- Manifest XML signature is not valid.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
--- Inner Exception ---
System.Security.Cryptography.CryptographicException
- The digital signature of the object did not verify.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.CodeSigning.SignedCmiManifest.Verify(CmiManifestVerifyFlags verifyFlags)
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
My server address is http://**.**.***.173:10080, and a clickonce app is published in http://**.**.***.173:10080/*****/ClickOnce folder.
I assume it tried to find an application manifest file (.manifest) with these several weird parameters (or query strings?) such as comid, userjpname, userfullname, canregist, canmanage, True and systemid, and thus it returned an error.
In my deployment manifest file, the location of the application manifest file is specified as below. No idea where these parameters came from.
<dependentAssembly
dependencyType="install"
codebase="MYAPPNAME_9_9_9_99\MYAPPNAME.exe.manifest"
size="8532">
<assemblyIdentity
name="MYAPPNAME.exe"
version="1.0.1.43"
publicKeyToken="*************"
language="neutral"
processorArchitecture="msil"
type="win32" />
Did you try to sign the application and deployment manifests again?
Reading you description again, I'm a bit confused.
First you create an application manifest.
Then you sign it.
Then you create a deployment manifest and explicitly point it to your application manifest.
Then you sign this, too.
(btw: you have to do the signing part every time you change something.)

LinkedIN - PHP Sample Code

I am trying to implement the LinkeIN API with PECL oAuth Module, I have managed to import my contacts and the scrip works well on my Development envoirnment
But on my Live Server it raises an exception when I get redirected to my website after authentication(From Linked In Website)
I have confirmed the following:
1. The TimeZone is proper and My Server DateTime is set correct.
2. The CallBack URL is proper
Exception :
Exception caught! Response: 400 1302008612531 0 Unsupported POST target {/v1/people/~:(id,first-name,last-name,headline,location,industry,distance,relation-to-viewer,current-status,current-status-timestamp,connections,summary,specialties,proposal-comments,honors,positions,educations,member-url-resources,picture-url,site-standard-profile-request,api-standard-profile-request)}
Fatal error: Uncaught exception 'OAuthException' with message 'Invalid auth/bad request (got a 400, expected HTTP/1.1 20X or a redirect)' in /var/www/html/contaxz/app/webroot/linkedIn/linkedin/Request.php:217 Stack trace: #0 /var/www/html/contaxz/app/webroot/linkedIn/linkedin/Request.php(217): OAuth->fetch('https://api.lin...') #1 /var/www/html/contaxz/app/webroot/linkedIn/example/index.php(23): LinkedIn_Request->pullConnections() #2 {main} thrown in /var/www/html/contaxz/app/webroot/linkedIn/linkedin/Request.php on line 217
Please suggest
Thanks
Ravi
I had been breaking my head with the code, server configuration, oAuth installation, php and apache version, TimeZone and what not.... but had No Luckā€¦.
Finally, I found my way and thought of posting it here as it could help someone:
Stop Apache
Hunted for the PHP OAuth Module in the PHP lib directory in my case I found this at /usr/lib/php/modules/oauth.so
Copied PHP OAuth Module from my DEV server and uploaded it on LIVE server
Restarted apache and it worked!
Thanks
Ravi

Resources