Merge pull request #59 from cmarinos/master

- update login page
fix providers creation
Fixes for the SAML metadata generation

- Fixes issue when there was only one key both for signing and
  encryption
- Fixes issue when ServiceName and/or ServiceDescription were not
  defined
- Fixes issue when requestedAttributes were not defined
Merge pull request #60 from skanct/fixes_for_the_saml_metadata_generation

Fixes for the SAML metadata generation
move logs into backend
remove ipse lorum
Fixes entityID for Feide OpenIdp

The entityid for the Feide openidp has been changed. This commit changes
the seed data in order to reflect this change
Uses same SAML configuration for login & metadata

- Adds missing configuration attribution to the login SAML configuration
- Changes the name of the variable from config to conf
Refactors the support for dynamic IdPs

Initially the functionallity for retrieving dynamically the IdP
entryPoint was implemented in the passport-saml library. This commit
rolls back the changes passport-saml and re-implemments the dynamic IdP
functionallity in the exress app.

This implementation is more flexible in changing passport-saml
configuration parameters in a dynamic manner and removes the external
dependency to the IdP model in the the passport-saml libradry
Merge pull request #61 from skanct/fix_seed_ipds

Fixes entityID for Feide OpenIdp
Merge pull request #62 from skanct/harmonizel_config_between_login_and_saml_metadata

Uses same SAML configuration for login & metadata
Merge pull request #63 from skanct/refactor_support_for_dynamic_idps

Refactors the support for dynamic IdPs
Uses the grnet-modified passport-saml package

- Removes the local installation of passport-saml in lib
- Uses the passport-saml package from the branch "grnet" in the
  repository: https://github.com/grnet/passport-saml.git
Merge pull request #64 from skanct/use_passport_saml_from_grnet

Uses the grnet-modified passport-saml package
additional fields and checks
Adds basic attribute mappings

The naming of the attributes in the SAML response might defer from IdP
to IdP. For example, from GN VHO we retrieve:

```
{
  issuer: {
    _: 'https://gn-vho.grnet.gr/idp/shibboleth',
    '$': {
       Format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:entity'
    }
  },
  nameID: '_5fb2b934dc89bd8da860e7a32e5a9e5b',
  nameIDFormat: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
  'urn:oid:1.3.6.1.4.1.5923.1.1.1.6': '99999@gn-vho.grnet.gr',
  'urn:oid:2.5.4.3': 'LastName FirstName',
  'urn:oid:2.5.4.4': 'LastName',
  'urn:oid:2.5.4.42': 'FirstName',
  'urn:oid:0.9.2342.19200300.100.1.3': 'mail@example.com',
  'urn:oid:1.3.6.1.4.1.5923.1.1.1.10': undefined,
  'urn:oid:2.16.840.1.113730.3.1.241': 'FirstName LastName',
  mail: 'mail@example.com',
  email: 'mail@example.com'
}
```

While from the OpenIdP:

```
{
  issuer: 'https://openidp.feide.no',
  nameID: '_d3e0a5fa8face9d978050beb1595f99f2b7177ac56',
  nameIDFormat: 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient',
  uid: 'user',
  mail: 'mail@example.com',
  sn: 'LastName',
  eduPersonPrincipalName: 'user@rnd.feide.no',
  cn: 'FirstName LastName',
  givenName: 'FirstName',
  eduPersonTargetedID: '2895b90b900a91dbd5282f9fa39a9d19e93ab8fa',
  'urn:oid:0.9.2342.19200300.100.1.1': 'user',
  'urn:oid:0.9.2342.19200300.100.1.3': 'mail@example.com',
  'urn:oid:2.5.4.4': 'LastName',
  'urn:oid:1.3.6.1.4.1.5923.1.1.1.6': 'user@rnd.feide.no',
  'urn:oid:2.5.4.3': 'FirstName LastName',
  'urn:oid:2.5.4.42': 'FirstName',
  'urn:oid:1.3.6.1.4.1.5923.1.1.1.10': '2895b90b900a91dbd5282f9fa39a9d19e93ab8fa',
  email: 'mail@example.com'
 }
```

This commit adds basic support for attribute mapping
Clears npm cache before updating webdriver
Merge pull request #66 from skanct/travis_clean_npm_cache

Clears npm cache before updating webdriver
Merge pull request #67 from skanct/attribute_mappings

Adds basic attribute mappings
Updates xmlbuilder to v2.4