Commit Graph

25435 Commits

Author SHA1 Message Date
Rohit Yadav 873dba477b CLOUDSTACK-8701: Add administrative contact block as per SAML IDP expectations
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-09 00:15:16 +05:30
Rohit Yadav 43136a890d CLOUDSTACK-8301: Enable configuring local storage use for system VMs at zone level
Backported from #263 for 4.5 branch, original bugfix by @koushik-das et al

More information on:
https://issues.apache.org/jira/browse/CLOUDSTACK-8301
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Enable+configuring+local+storage+use+for+system+VMs+at+zone+level

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit f28287b66c)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-06 15:02:16 +05:30
Rohit Yadav ef86ff4f39 travis: add sudo required
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-05 21:24:26 +05:30
Rohit Yadav 6b041a20df travis: don't force M2_HOME, let Travis use the bundled maven3
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #652

(cherry picked from commit 2ed9539c29)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-05 21:24:26 +05:30
Boris Schrijver fd790e3ba5 CLOUDSTACK-8642: SSO Method not allowed bug fix. Due to CLOUDSTACK-8505 and commit 1c81b241e7
Signed-off-by: Daan Hoogland <daan@onecht.net>

This closes #598

(cherry picked from commit b1e5906923)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 56522fda67)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-05 21:24:26 +05:30
Vadim Kimlaychuk 46433c1e92 CLOUDSTACK-8231: Fixed UI empty drop-down list for LB rules
This closes #271
This closes #302

(cherry picked from commit f8e1ff12ab)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-05 21:24:26 +05:30
Rohit Yadav f50a9489b8 CLOUDSTACK-8701: Allow users to switch across SAML account/domains from topbar
Moves the previous switch account logic to its own ui-custom module

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-05 21:24:25 +05:30
Rohit Yadav 7f55b75e1c CLOUDSTACK-8701: Allow SAML users to switch accounts
SAML authorized accounts might be across various domains, this allows for
switching of accounts only in case of SAML authenticated user accounts across
other accounts with the same SAML uid/username.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit d3bc159784835b112027a7460647f8750588770a)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-03 14:52:15 +05:30
Rohit Yadav 2f12c11d41 CLOUDSTACK-8702: Add/refactor sessionkey checking code to HttpUtils
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 72e3954c9b18a053055abbe5d7ee800e8b11ae24)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-03 14:35:12 +05:30
Rohit Yadav 20f7f775d4 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.

(cherry picked from commit 9e9b231672)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	plugins/user-authenticators/saml2/src/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java
	server/src/com/cloud/api/ApiServlet.java

(cherry picked from commit 8b9b4832f483797c8ab123bf27262634430efcb9)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-08-03 12:40:00 +05:30
Rohit Yadav d2e5bc6649 CLOUDSTACK-8457: SAML UI Dialog fixes to use local $form
This uses local selector to access the DOM elements, the previous commit
would find a global element which is not in the context and fail changing the
element in the opened dialog.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 11:31:27 +05:30
Rohit Yadav 3938b43c4d CLOUDSTACK-8457: SAML UI enhancements
Add option to authorize SAML SSO for user when adding user. Appends a domain to
user/account name if global setting is enabled, useful in case of multiple IDP
server. By default the setting is set to false (keep as it is).

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

This closes #575

(cherry picked from commit 7d11c7bc70)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 10:23:11 +05:30
Rohit Yadav 5f51a6431d 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

(cherry picked from commit 12edad3e20)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

Conflicts:
	server/src/com/cloud/api/ApiServlet.java
	utils/src/com/cloud/utils/HttpUtils.java
2015-07-14 10:22:40 +05:30
Rohit Yadav 8bb0a70a56 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

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:49:39 +02:00
Rohit Yadav 76868f5767 cloudstack: Change version to 4.5.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:43:49 +02:00
Daan Hoogland e1f650f4f7 4.4.4 to 4.5.2 upgrade
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>

This closes #528
2015-06-29 13:38:04 +02:00
Rohit Yadav 7520c60378 engine: add upgrade path from 4.5.1 to 4.5.2
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:36:22 +02:00
Rohit Yadav 11a6073ada schema: fix foreign key checks for 3.0.7 to 4.1.0 upgrade path
Without this upgrades from 3.0.7 version fails.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-06-29 13:36:22 +02:00
Abhinandan Prateek 95b46de562 Adding upgrade path to go with current 4.5.2 version for this branch 2015-06-29 13:36:22 +02:00
Rohit Yadav 8b18ab3ff2 Fix version to 4.5.2-SNAPSHOT throughout the source
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-08 11:35:59 +02:00
Rohit Yadav 0963432268 apidoc: get version information from $project.version
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-08 11:35:34 +02:00
Rohit Yadav d0d08e68e9 tools: fix build
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-08 11:11:10 +02:00
Rohit Yadav 4ba72a877c Updating pom.xml version numbers for release 4.5.2-SNAPSHOT
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-07 15:33:01 +02:00
Rohit Yadav 11b7b0a3c3 Merge branch 'GA-4.5.1' into 4.5 2015-05-07 15:27:45 +02:00
Abhinandan Prateek e1a212842a CLOUDSTACK-8429: optimizing travis to run configurable set of tests only after configurable runs 2015-05-06 08:49:16 +05:30
Rohit Yadav 54f3e7733f debian: allow openjdk1.8 as optional dependency
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 02:09:41 +02:00
Rohit Yadav 25e555bd2d packaging: rpm related fixes
CLOUDSTACK-7460: mgmt server package should not create agent directory
Revert "CLOUDSTACK-8402: Depend on openjdk 1.7 for both CentOS 6 and 7"
Revert "CLOUDSTACK-8404: uninstall/conflict if java-1.8.0-openjdk is installed"

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-06 01:46:21 +02:00
Rohit Yadav 21dd2ed9e2 CLOUDSTACK-7460: mgmt server package should not create agent directory
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-05 15:26:36 +02:00
Rohit Yadav 0eb4eb2370 Updating pom.xml version numbers for release 4.5.1
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-04 12:17:03 +02:00
Rohit Yadav d889a33bf4 pom: add files to be excluded from rat check
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-04 12:13:16 +02:00
Wido den Hollander 329e94828d CLOUDSTACK-1302: Make sure the disk cache mode is passed to the KVM Agent
The StartCommand did not contain the proper cache mode due to VolumeJoinVO
not containing the cache_mode field.
2015-05-04 10:23:00 +02:00
Koushik Das 23bde8ea7a CLOUDSTACK-8438: Proper enforcement of hypervisor capability "max. guest limit"
VMs in transition states - Starting, Stopping, Migrating - are also taken into account for enforcing "max. guest limit"

(cherry picked from commit 3100fc1554)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:56:10 +02:00
Rohit Yadav cb3d03c7b0 ui: use cloudstack logo as favicon
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit ba9c4cfa81)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:25:44 +02:00
Laszlo Hornyak a686d2e8b3 added favicon
This closes #225

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
(cherry picked from commit 0347f733dd)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:25:34 +02:00
Rohit Yadav 7a1cb28c9f server: Introduce Unknown Status to be used in AbstractInvestigatorImpl
The PR #211 introduced changes where the abstract investigator testIpAddress()
would return other Status, which previously only returned null, Up or Down. In
this patch we introduce a new Status "Unknown" that replaces null's semantics.

The important changes #211 introduced was the debugging statements as semantically
the changes would work same as the consumers of testIpAddress() method only used
if returned values were Up or Down and in other cases (null, Alert etc) it would
simply continue to loop through the resources being investigated.

Keeping the debug logs, this commit only replaces the previously returned null
values with Status.Unknown and fixed the debug statements to reflect the same.
In case of trapped exceptions too, we return Unknown status but log the exception
we trapped.

server: add null assertions and remove dead code with testIpAddress usage

This closes #222

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:15:29 +02:00
Rohit Yadav 8f25be7c0f CLOUDSTACK-8404: uninstall/conflict if java-1.8.0-openjdk is installed
This would force to uninstall openjdk 1.8.0 and only install 1.7 in case of ACS
4.5.x releases. On master/4.6, we might support java 1.8.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-03 15:04:33 +02:00
Laszlo Hornyak e6a02acb06 CLOUDSTACK-8335: removed ceph repository - artifact resolved from maven central
This closes #221

Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
Signed-off-by: Rajani Karuturi <rajanikaruturi@gmail.com>
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-01 16:48:48 +02:00
Rohit Yadav 279efb0432 CLOUDSTACK-6139: Fix regression, allow zone level systemvm localstorage config
From b3f18e7d74, the zone level systemvm local
storage setting never worked as it needed to be moved to config depot.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-05-01 15:24:53 +02:00
Abhinandan Prateek fb0bfd5d4f CLOUDSTACK-8429: disabling unit test for faster build 2015-05-01 12:35:03 +05:30
Abhinandan Prateek 1a77e8af52 CLOUDSTACK-8429: removing some tests as they timeout on travis 2015-04-30 20:32:10 +05:30
Abhinandan Prateek 4870394587 CLOUDSTACK-8429: fix the path so that it picks all the tests suites properly 2015-04-30 17:16:45 +05:30
Jayapal 9642e862d6 CLOUDSTACK-8406: Fixed selecting userdata as VR with dhcp service 2015-04-30 12:24:24 +05:30
Abhinandan Prateek 0e7975d4d6 CLOUDSTACK-8429: removed duplicate test and replaced with some more limit checks 2015-04-30 10:36:12 +05:30
Rohit Yadav 4334c446b5 CLOUDSTACK-8424: enable cpu flags only for guest VMs
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-30 04:12:32 +02:00
Rohit Yadav a4120b24e4 systemvmtemplate: 7.8.0 iso is archived now, use link from archives
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 17:14:11 +02:00
Daan Hoogland 6e87337d52 findbugs: String.split() will not return nulls by contract
(cherry picked from commit 7b10591758)

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:54:19 +02:00
Rohit Yadav 031d7a9c43 CLOUDSTACK-8402: Depend on openjdk 1.7 for both CentOS 6 and 7
This commit forces rpms to depend on java-1.7.0-openjdk which is available
on both CentOS 6 and CentOS 7, also the version that ACS 4.5 supports.

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00
Koushik Das 795f3814f6 CLOUDSTACK-8426: Use a separate thread pool for VR reboot in case of out-of-band movement
Using a cached thread pool for VR reboot task

(cherry picked from commit 1a719afb51)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00
Koushik Das 6378d37c5e CLOUDSTACK-8425: Job framework: Same internal job can execute simultaneously
The same internal job was simultaneously getting executed by 2 worked threads.
The fix is to ensure that job gets scheduled for execution from a single place.

(cherry picked from commit 6dfb8ab03e)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00
Likitha Shetty 27b7e49b39 CLOUDSTACK-8412. VM migration with storage fails.
Update MigrateWithStorageCommand to avoid JSON deserialization error.

(cherry picked from commit 04365601da)
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-04-29 16:50:40 +02:00