Commit Graph

2315 Commits

Author SHA1 Message Date
Abhinandan Prateek 22dccd1be6 quota: make tariff plans updatable and schedulable 2015-07-22 12:28:13 +05:30
Abhinandan Prateek f51eb1b396 quota: adding config initialization to quota manager and taking care of boundary conditions 2015-07-21 17:33:00 +05:30
Rohit Yadav 3008502440 quota: add apache commons 3.4 lang3 library for using StrSubstitutor for email templates
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-21 15:24:30 +05:30
Abhinandan Prateek 945103b1f7 quota: for quota calc from start date to end date, adjust the credits/debits done during this period 2015-07-21 15:23:27 +05:30
Abhinandan Prateek 6688220cb2 quota: fixed transaction, boundary conditions 2015-07-21 14:11:43 +05:30
Rohit Yadav c13b329df7 quota: fix quota credits api, NPE
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-21 12:51:07 +05:30
Abhinandan Prateek c99346c30e quota: added checks for boundary cases 2015-07-21 12:40:38 +05:30
Abhinandan Prateek ccde3cfca9 CLOUDSTACK-8592: splitting out quotamanager into quotamanager and quotaservice 2015-07-21 12:40:38 +05:30
Rohit Yadav 02234778d7 quota: add quota balance/credit statement in the statement tab
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-21 12:34:59 +05:30
Rohit Yadav 6f1736404e quota: fix quota statement api, db schema and implement UI tab for statement generation
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-20 17:21:01 +05:30
Abhinandan Prateek a4dac9abea CLOUDSTACK-8592: added current balance and balance on a date 2015-07-20 11:54:49 +05:30
Abhinandan Prateek a9e71c7d2b CLOUDSTACK-8592: in responses print values rounded to two decimal places 2015-07-17 10:36:46 +05:30
Abhinandan Prateek a2143e3f98 CLOUDSTACK-8592: calculating balance, adjusting credits and API commands for getting quota statement and balances 2015-07-16 17:40:35 +05:30
Rohit Yadav 7c10013bd7 quota: rename/refactor quota mapping usage to quotaTariff
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-15 17:32:38 +05:30
Rohit Yadav d28365b882 quota: refactor and fix code around quota tariff
quota mapping is now called quota tariff
fixed db usage

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-15 17:21:51 +05:30
Abhinandan Prateek f4226a7219 iCLOUDSTACK-8592: Incremental update for credits and balance 2015-07-15 15:49:24 +05:30
Abhinandan Prateek 13b04557fa CLOUDSTACK-8592: put a limit on number of usage records read for processing 2015-07-15 11:21:34 +05:30
Rohit Yadav c8473d2f3a quota: remove unwanted changes
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 18:04:54 +05:30
Abhinandan Prateek af2cccf0a1 CLOUDSTACK-8592: formatting 2015-07-14 17:22:36 +05:30
Abhinandan Prateek 2a8bb5f4aa CLOUDSTACK-8592: close transactions used for swicthing DBs 2015-07-14 17:18:04 +05:30
Abhinandan Prateek 26c3628fda CLOUDSTACK-8592: added quota balance command that aggregates quota line items and balance information 2015-07-14 16:24:20 +05:30
Abhinandan Prateek 47ffa60f9e iCLOUDSTACK-8592: adding accountid and domainid to quota statement 2015-07-14 16:22:21 +05:30
Rohit Yadav 82d9a6ac76 quota: inject quota balance dao to quota db utils to be used later
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 15:10:06 +05:30
Rohit Yadav c8cfb383da quota: for BigDecimal use String in API cmd and responses
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 14:54:54 +05:30
Rohit Yadav c4d82f0a60 quota: take value as string in add credit cmd
API was not working, using strign param we can create a BigDecimal value

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 14:23:55 +05:30
Rohit Yadav 473496b1d0 quota: use uniform response names
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 14:13:02 +05:30
Rohit Yadav 829bb17f7c quota: rename quotamapping to quotamappingcmd
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 14:07:56 +05:30
Rohit Yadav ccbe8decb3 quota: fix quota refresh API, reuse success response
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 13:53:12 +05:30
Rohit Yadav 9dc60bba61 quota: fix quotaRefresh API response keys
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 13:43:16 +05:30
Abhinandan Prateek ae0eb6e334 CLOUDSTACK-8592: first cut implementation of quota statement 2015-07-14 12:18:25 +05:30
Abhinandan Prateek 135af2ceed CLOUDSTACK-8592: calculation of quota 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 1b579afaeb CLOUDSTACK-8592: refactoring, cleanup 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 53c22f6ba7 CLOUDSTACK-8592: adding QuotaEditResourceMappingCmd 2015-07-14 11:35:52 +05:30
Abhinandan Prateek b5e016288a CLOUDSTACK-8592: keep track of quota job runs - adding schema and daos 2015-07-14 11:35:52 +05:30
Abhinandan Prateek a558afae57 CLOUDSTACK-8592: Adding new APIs and implementing the API stubs 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 65618bbac2 CLOUDSTACK-8592: adding corresponding DAOs with stubs 2015-07-14 11:35:52 +05:30
Abhinandan Prateek d160da07cf CLOUDSTACK-8592: adding corresponding DAOs with stubs 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 6c4dea7bb8 CLOUDSTACK-8592: creating respective VO objects 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 3103dcf7bc CLOUDSTACK-8592: updated quota email templates 2015-07-14 11:35:52 +05:30
Abhinandan Prateek 1345b9fbfb CLOUDSTACK-8592: Adding email management APIs 2015-07-14 11:35:51 +05:30
Rohit Yadav 1f75299016 quota: fix db bean issue
Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
2015-07-14 11:35:51 +05:30
Abhinandan Prateek 46be58d602 raised the version to 4.5.2 in pom 2015-07-14 11:35:51 +05:30
Abhinandan Prateek c9770e7777 merging fixes 2015-07-14 11:35:51 +05:30
Abhinandan Prateek 1da4271b17 adding quota credit api 2015-07-14 11:35:51 +05:30
Abhinandan Prateek 605239df72 quota: initial commit 2015-07-14 11:35:51 +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
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