uwdoem / connection
Helper library for connecting to the university's x.509 secured web services
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- phpdocumentor/phpdocumentor: 2.7.*
- phpunit/phpunit: 4.5.*
- squizlabs/php_codesniffer: 2.*
- uwdoem/standard: *
README
UWDOEM/Connection
Connection is a PHP helper library for connecting to the university's x.509 secured web services. Connection is used by uwdoem/person to connect to the university's person and student web services.
Installation
You can use Connection directly by including it in your composer.json
file require
statements:
"require": {
...
"uwdoem/connection": "2.*",
...
},
Of course it is possible to use Connection without Composer by downloading it directly, but use of Composer to manage packages is highly recommended. See Composer for more information.
Troubleshooting
This library will throw warnings and exceptions when it recognizes an error. Turn on error reporting to see these. The following conditions will halt execution:
cURL Error Code 77
Problem: cURL cannot find the UWCA root certificate to verify the identify of the PWS/SWS servers.
Solution: Download the .crt root CA bundle to your server, ensure that your web-server process has read access to this bundle, and uncomment/edit the curl.cainfo
line in your php.ini to reflect the location of this bundle.
cURL Error Code 58
Problem: cURL is having a problem using your private key.
Solution: You may have provided an incorrect private key password to ::createConnection
. If your private key requires a password, provide one, and ensure that it is correct.
No such file found for SSL key/certificate
Problem: Connection cannot find the key and/or certificate at the path you provided to ::createConnection
.
Solution: Ensure that you provided the correct path to these files and that your web-server process has read-access to these files.
Incorrect password for SSL key, but you're providing the correct SSL key password
Problem: This might be caused by a bug in the system cURL, which might cache your SSL keys; it seems that cURL can confuse these keys and use apply the wrong password to a key.
Solution: Only use one SSL key on one server, or make all SSL keys passwordless.
Script execution halts/no output
Problem: This might be caused by an internal error in cURL while accessing your private key/certificate which causes PHP to die unexpectedly.
Solution: I was able to solve this by setting permissions on my key/certificate to read only. Specifically, I turned off write access for all parties.
Requirements
- PHP 5.5, 5.6, 7.0
- cURL
Todo
See GitHub issue tracker.
Getting Involved
Feel free to open pull requests or issues. GitHub is the canonical location of this project.
Here's the general sequence of events for code contribution:
- Open an issue in the issue tracker.
- In any order:
- Submit a pull request with a failing test that demonstrates the issue/feature.
- Get acknowledgement/concurrence.
- Revise your pull request to pass the test in (2). Include documentation, if appropriate.