Wiki Markup |
---|
{toc}
h1. Overview
The following set up will allow you to work on the Raft3 app in your local environment ([ |
Table of Contents |
---|
Overview
...
http://localhost]) by using a node.js proxy server to connect to the dev servers for authentication and services. |
...
*Note:* This environment will not work until you have a valid Kerberos account and have been created as a Raft user. h1. |
...
Installation of |
...
Required Software Download and install node from here: [http://nodejs.org/download/] (doc written using V0.10.16) |
...
h1. Checkout Raft3 code |
...
Create a new project in PHPStorm (or your favorite IDE) and pull the code. |
...
+svn root:+ svn+ssh://svn.mit.edu/mitbi |
...
+project:+ php/trunk |
...
You'll get more than just the front end app but this allows us to be consistent when merging |
...
h1. Create a local server directory |
...
The app lives in the public directory (trunk/zend_framework/public/) |
...
In this public directory you need to create a copy of the existing server directory. Call it local_server and configure it so svn will ignore it (we want this to remain locally on your machine only). h1. |
...
Certificate Installation |
...
These certificates are used to proxy to the test server using your credentials. |
...
# Go to Firefox/Preferences/Advanced/Encryption/View Certificates and click on your certificate and click the Backup button. In the Save Dialog box, save your certificate as a pks12 (.p12) file in your server directory (neatest if you save it in a cert subdirectory). |
...
# Using your terminal, CD to the cert subdirectory (/zend_framework/public/local_server/certs). |
...
# Create a .pem file: openssl pkcs12 \-nodes \-in yourcert.p12 \-out yourcert.pem |
...
# {{Now remove the password from your .pem file this way: openssl rsa \-in yourcert.pem \-out yourcertNoPassword.pem |
...
}} # {{From the Authorities tab in FF, e{}}}{{{}xport and save the "MIT Certification Authority..." certification to a file name mitCA.pem in /zend_framework/public/local_server{}}}{{/certs folder |
...
{}}}{{.}} h1. Configure auth.json |
...
Edit /zend_framework/public/local_server/auth_yours.json and rename this file to auth_me.json or whatever you like: |
...
{code |
}{ "what_do_I_do_with_this_file": "Rename this file to auth_me.json or whatever you like then reference it on the command line with the '-a' parameter", "keyFile": ".pem file containing your cert with password removed", "certsFile": ".pem file containing your key", "caFile": "certs/mitCA.pem" } |
Install Required Node Module Dependencies
...
}{code} h1. Install Required Node Module Dependencies # Navigate to /zend_framework/public/local_server/ |
...
# Execute npm (node package manager) which will read the _package.json_ file and install the listed dependencies. |
...
- npm install
Testing The Local Server
...
## npm install h1. Testing The Local Server # Navigate to zend_framework/public/local_server |
...
# Start the server via command: node bin/mitserv.js \-a auth_me.json |
...
# In a browser, navigate to http:/localhost:8080/app.html |
...
Possible Issues
- Issue:
- Proxy starts but errors related to .pem files seen
- Fix:
- Make sure you did not mix up the key and cert files in your auth.json file.
- Issue:
- Proxy starts but no response is returned at all
- Fix:
- Make sure you have been added everywhere required to be a valid Raft user (Amon knows)
- Issue:
- Proxy starting but never returning
- Fix:
- Make sure you're connecting using either the MIT N or MIT SECURE N wireless network
...
h2. Possible Issues * Issue: ** Proxy starts but errors related to .pem files seen * Fix: ** Make sure you did not mix up the key and cert files in your auth.json file. * Issue: ** Proxy starts but no response is returned at all * Fix: ** Make sure you have been added everywhere required to be a valid Raft user (Amon knows) * Issue: ** Proxy starting but never returning * Fix: ** Make sure you're connecting using either the MIT N or MIT SECURE N wireless network * Issue: ** Seeing {color:#ff0000}GET{color} [http://localhost:8080/rest/v1/user/auth|http://localhost:8080/rest/v1/user/auth] {color:#ff0000}403 (Forbidden) |
...
{color} ** With body content including: "SyntaxError: Unexpected token ILLEGAL" |
...
* Fix: |
...
** The Apache server needs to include the username |
...
* Issue: |
...
** Error: EBADF, Bad file descriptor './certs/hij1nx.pem' |
...
* Fix: |
...
** The certs are missing and/or misconfigured. See the section on installing certificates. |