Commit Graph

1080 Commits

Author SHA1 Message Date
Rohit Yadav
d34da5aa8f CLOUDSTACK-9020: Metrics views for CloudStack UI
Implements following:
- A metrics table widget that is:
  - vertically and horizontally scrollable with pagination/infinite scrolling
  - sortable columns (client side)
  - groupable/collapsible columns
  - alternate row coloring
  - refresh button to refresh views
  - threshold table cell coloring
  - panel/breadcrumb navigation
  - quick view action column
  - translatable labels
- Sortable column for all CloudStack tables (client side)
- Configurable UI pagesize for list API calls, 'default.ui.page.size'
- Metrics views: Zones, Clusters, Hosts, Instances, Storage pools, Volumes
- Resource filtering/navigation: Zones->Clusters->Hosts->Instances->Volumes, Storage Pool->Volumes

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-11-06 11:06:02 +05:30
John Burwell
3a48171bd8 CLOUDSTACK-8566: Strips the username and password credentials from host details
... map returned by the following API calls by filtering these fields from the
details attribute in the HostResponse class:

  * listHosts
  * addHost
  * cancelHostMaintenance
  * listHosts
  * prepareHostForMaintenance
  * reconnectHost
  * updateHost

This fix addresses CVE 2015-3251.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-14 10:49:28 +05:30
Rohit Yadav
12edad3e20 CLOUDSTACK-8622: Reinstate working sessions in browser
- Login is based on sessionkey HttpOnly Cookie
- ApiServlet does login verification using sessionKey from both the request cookies
  and the API parameters. In both cases, if either or both are passed they should
  match the sessionKey stored in the current session of the HttpRequest
- UI: it no longer needs to read or set sessionkey cookie
- UI: it no longer needs to return g_sessionKey value in the API requests, though
  to support a sso mechanism g_sessionKey is still passed in the API is not null
- Secure jsessionid cookie is set to be HttpOnly and Secure
- SAML login should also set HttpOnly cookie before redirecting to UI
- SAML: listIdps & getSPMetadata APIs are readonly now, won't log out a logged in user

Performed tests (login, saml login if applicable, page refreshes, opening
multiple tabs, logout) with following combinations:
- SAML disabled, normal auth as admin, domain-admin and user
- SAML enabled, normal auth as admin, domain-admin and user; and saml sso as
  admin, domain-admin and user

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #574
This closes #308
2015-07-10 17:27:34 +05:30
Rohit Yadav
20ce346f3a CLOUDSTACK-8457: SAML auth plugin improvements for production usage
* Move config options to SAML plugin
  This moves all configuration options from Config.java to SAML auth manager. This
  allows us to use the config framework.
* Make SAML2UserAuthenticator validate SAML token in httprequest
* Make logout API use ConfigKeys defined in saml auth manager
* Before doing SAML auth, cleanup local states and cookies
* Fix configurations in 4.5.1 to 4.5.2 upgrade path
* Fail if idp has no sso URL defined
* Add a default set of SAML SP cert for testing purposes
  Now to enable and use saml, one needs to do a deploydb-saml after doing a deploydb
* UI remembers login selections, IDP server

- CLOUDSTACK-8458:
    * On UI show dropdown list of discovered IdPs
    * Support SAML Federation, where there may be more than one IdP
        - New datastructure to hold metadata of SP or IdP
        - Recursive processing of IdP metadata
        - Fix login/logout APIs to get new interface and metadata data structure
        - Add org/contact information to metadata
        - Add new API: listIdps that returns list of all discovered IdPs
        - Refactor and cleanup code and tests

- CLOUDSTACK-8459:
    * Add HTTP-POST binding to SP metadata
    * Authn requests must use either HTTP POST/Artifact binding

- CLOUDSTACK-8461:
    * Use unspecified x509 cert as a fallback encryption/signing key
      In case a IDP's metadata does not clearly say if their certificates need to be
      used as signing or encryption and we don't find that, fallback to use the
      unspecified key itself.

- CLOUDSTACK-8462:
    * SAML Auth plugin should not do authorization
      This removes logic to create user if they don't exist. This strictly now
      assumes that users have been already created/imported/authorized by admins.
      As per SAML v2.0 spec section 4.1.2, the SP provider should create authn requests using
      either HTTP POST or HTTP Artifact binding to transfer the message through a
      user agent (browser in our case). The use of HTTP Redirect was one of the reasons
      why this plugin failed to work for some IdP servers that enforce this.
    * Add new User Source
      By reusing the source field, we can find if a user has been SAML enabled or not.
      The limitation is that, once say a user is imported by LDAP and then SAML
      enabled - they won't be able to use LDAP for authentication
    * UI should allow users to pass in domain they want to log into, though it is
      optional and needed only when a user has accounts across domains with same
      username and authorized IDP server
    * SAML users need to be authorized before they can authenticate
        - New column entity to track saml entity id for a user
        - Reusing source column to check if user is saml enabled or not
        - Add new source types, saml2 and saml2disabled
        - New table saml_token to solve the issue of multiple users across domains and
          to enforce security by tracking authn token and checking the samlresponse for
          the tokens
        - Implement API: authorizeSamlSso to enable/disable saml authentication for a
          user
        - Stubs to implement saml token flushing/expiry

- CLOUDSTACK-8463:
    * Use username attribute specified in global setting
      Use username attribute defined by admin from a global setting
      In case of encrypted assertion/attributes:
      - Decrypt them
      - Check signature if provided to check authenticity of message using IdP's
        public key and SP's private key
      - Loop through attributes to find the username

- CLOUDSTACK-8538:
    * Add new global config for SAML request sig algorithm

- CLOUDSTACK-8539:
    * Add metadata refresh timer task and token expiring
        - Fix domain path and save it to saml_tokens
        - Expire hour old saml tokens
        - Refresh metadata based on timer task
        - Fix unit tests

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #489
2015-06-29 12:25:02 +02:00
René Moser
00fffbe081 template, api: fix format desc, add OVA format
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #331

(cherry picked from commit 666263e84d)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-29 21:02:30 +02:00
Milamber
8eafdbd224 CLOUDSTACK-6181 Specify GB for the value of rootdisksize parameter. Add some Bytes/GB for log or exception messages. Fix Gb->GB. 2015-05-23 18:53:18 +01:00
Rohit Yadav
9e9b231672 CLOUDSTACK-8505: Don't allow non-POST requests for default login API
We add a new contract to pass Http request to authentication plugin system. In
the default login API, we disallow non-POST requests.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-22 10:11:15 +01:00
Rene Moser
fd97705f83 listPortForwardingRules: fix typo in doc
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #248

(cherry picked from commit e8f8e0e3f2)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-13 15:44:13 +02:00
Ilia Shakitko
50dd37fcc9 GetUsageRecordsCmd - NewInputFormat for START_DATE and END_DATE (with time; backward capabile)
This closes #191

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-25 02:49:21 +02:00
Rohit Yadav
3e8b12bbb1 CLOUDSTACK-8399: Allow changing hvm flag in updateTemplate API
This allows changing the hvm flag for a template after the template has been
registered.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-23 15:27:43 +02:00
Rohit Yadav
c71339569d RemoteAccessVpn: fix regression preshared key is not sent to UI/clients
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-23 14:04:32 +02:00
Rene Moser
5f154b91ba CreateVMSnapshot: fix typo in API description
This closes #161

(cherry picked from commit 4a424500f3)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-14 00:59:49 +05:30
Rohit Yadav
0fe4acf525 CLOUDSTACK-6353: Fix list to have correct LB IP for each rule
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-26 18:20:59 +05:30
Rohit Yadav
02cadc3fb3 api: avoid sending sensitive data in api response
- UI: use post when updating user
- S3: don't send s3 key in the response
- VPN: don't send preshared key in remoteaccessvpn api response
- Snapshot response should set zone id not volume's device id

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-11 16:34:11 +05:30
Phillip Kent
edf7675d2e modify description for name parameter in ListVMsCmd.java
(cherry picked from commit d4523c5778)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-03-05 18:28:34 +05:30
René Moser
e39ec2767e CreatePortForwardingRuleCmd: Fix typos and update descriptions.
Signed-off-by: Sebastien Goasguen <runseb@gmail.com>

This closes #94
2015-03-05 11:02:05 +01:00
Rohit Yadav
5481485a08 CLOUDSTACK-5238: password checks, NPE fixes and minor fixes
- insecure authenticators excluded in configuration
- snapshot response should have zone
- remove vmsnapshots when removing accounts

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-27 18:20:10 +05:30
Rohit Yadav
e5cd75790a CLOUDSTACK-7085, CLOUDSTACK-7084: disallow empty passwords
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-16 15:31:22 +05:30
Santhosh Edukulla
78bfaa79cf Fixed few coverity issues like invalid boxing unboxing issues, resource leaks, null dereferences
(cherry picked from commit ef6ec7b276)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-06 16:50:20 +05:30
Rohit Yadav
af278fe1ab Fix typos
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-06 15:53:41 +05:30
Rohit Yadav
d2bf21065e DeployVmCmd: Fix NPE case
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-06 14:20:57 +05:30
Rohit Yadav
48ec9ac11b CLOUDSTACK-8190: Fix xenserver traffic label for backward compatiblity
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-02 16:09:56 +05:30
Santhosh Edukulla
737edd90dc Fixed few coverity patches
NPE in delete firewall rules observed, cherry-picking fix from master.

(cherry picked from commit 31a42d2b7a)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-02-02 12:48:38 +05:30
Rajesh Battala
1288d533ef CLOUDSTACK-7774 Description field is missing in Health policy API's
(cherry picked from commit e5d3e496ab)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-20 12:04:53 +05:30
Rohit Yadav
f6564b0b03 CLOUDSTACK-8167: publish volume uuid on event bus in create snapshot cmd
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-18 17:40:37 +05:30
Rajesh Battala
5f117e6be9 CLOUDSTACK-6920 Support listing of LBHealthcheck policy with LBHealthcheck policy ID
(cherry picked from commit c7b23d0a10)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-18 17:31:15 +05:30
Sanjay Tripathi
8676ff26e0 CLOUDSTACK-8066: There is not way to know the size of the snapshot created.
(cherry picked from commit 9153b8bede)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-18 17:25:41 +05:30
René Moser
5df6ee4f7c CLOUDSTACK-8154: Fix typo in response name string: there is an extra 's'
Signed-off-by: René Moser <mail@renemoser.net>
(cherry picked from commit c7ebd13d02)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-01-14 16:36:01 +05:30
Min Chen
bf8dd828f5 CLOUDSTACK-7981: listVirtualMachine is too slow in case of duplicate
resource tags due to joining user_vm_details to user_vm_view.
2014-11-26 17:40:06 -08:00
Syed
9f8d0051ed CLOUDSTACK-7952: Remove private key from SslCertResponse (listSslCerts)
Signed-off-by: Will Stevens <wstevens@cloudops.com>
2014-11-21 03:39:57 -05:00
Phillip Kent
d2c087aef2 Update ListInternalLBVMsCmd.java
Fix typo in response name string: there was an extra 's'

Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>

This closes #8
2014-11-13 16:04:27 +05:30
Rohit Yadav
c401dbc8f9 CLOUDSTACK-7871: allow VM and template details update using update APIs
Allows updating details (key/value) pair which updatse entries
invm_template_details and user_vm_details tables using updateVM and updateTemplate
APIs. This allows sys admins to update nics, controllers etc without DB hacking.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 97fa4a023e)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-11-10 17:53:26 +05:30
Min Chen
8acdd7fbf2 CLOUDSTACK-7798: requestHasSensitiveInfo and responseHasSensitiveInfo annotation are missing from some separate Admin API commands. 2014-10-27 17:00:43 -07:00
Saksham Srivastava
14ace9e758 CLOUDSTACK-7663: Fix typo in response name string: there is an extra 's'
(cherry picked from commit e7134b82f9)
2014-10-13 00:14:45 -04:00
Devdeep Singh
549840dd0d CLOUDSTACK-7495. Volume resize is only supported on kvm, vmware and xenserver. If
the operation is tried on other hypervisors it fails but logs a stack trace. We
should just log a message that the operation isn't supported.

(cherry picked from commit ec1123aca1)
2014-10-13 00:01:55 -04:00
Rohit Yadav
eb3773c27f CID-1223272: Remove DLS code, exceptions and logging handled at lower layers
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit f40f16b618)
2014-10-12 23:58:28 -04:00
Rohit Yadav
fbb9e2b210 CID-1192798: Remove unused boolean variable
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 6e06ae9e8e)
2014-10-12 23:57:40 -04:00
Sheng Yang
7d141617f3 Fix ip6gateway parameter comments in CreateNetworkCmd 2014-09-15 11:26:48 -07:00
Min Chen
8a3793c582 CLOUDSTACK-7542:CreateNetworkCmd and CreateNetworkCmdByAdmin both have
their own "vlan" parameters.
2014-09-12 15:50:18 -07:00
Ilia Shakitko
70142c4acb Added "usageid" parameter to the "listUsageRecords" API call. Can be used only together with "type" parameter specified
Signed-off-by: Ilia Shakitko <i.shakitko@tech.leaseweb.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-09-10 12:19:34 +02:00
Frank.Zhang
c301bd1c94 CLOUDSTACK-6278
Baremetal Advanced Networking support
2014-09-05 16:28:33 -07:00
Edison Su
ce82ab605d listhost api needs to return host_details table 2014-09-04 17:57:24 -07:00
Will Stevens
5d11385c31 CLOUDSTACK-7468: Fixed the NetScaler SSL Termination behavior with Projects
Signed-off-by: Will Stevens <wstevens@cloudops.com>
2014-09-03 10:07:19 -04:00
Rohit Yadav
47ccce85a1 api: add method to pass on api authenticators to cmd classes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:24 +02:00
Rohit Yadav
7ff50499a1 api: Add PluggableAPIAuthenticator interface
This interface is used by any plugin for implementing a pluggable API
authenticator such as SAML, OAuth etc.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:22 +02:00
Rohit Yadav
74f5795908 api: fix refactored ApiServerService interface to api
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:22 +02:00
Rohit Yadav
68e094ebaf saml: move refactor files from server to api module
- Move interfaces and classes from server to api module
- This can be then used for pluggable api authenticators

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:22 +02:00
Rohit Yadav
df95a762f4 SAML2: add saml sso and slo apicmds skeleton, add classes to AuthManager
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2014-08-28 19:45:20 +02:00
Koushik Das
e3c0815a0c CLOUDSTACK-7392: [Automation] NPE thrown during Migration of VM
NPE is thrown as invalid hostId (corresponding to SSVM) is passed as paramater.
Added validation to check that the host is of type 'Routing'
2014-08-26 18:43:38 +05:30
Jayapal
cae4124dc6 Fixed few coverity issues 2014-08-26 17:51:28 +05:30