# version 0.61.0

02/08/2018
	- Added VC referencing tests (margaretha)	
	- Implemented loading and caching named VCs (margaretha)
03/08/2018	
    - Implemented OAuth2 revoke token (margaretha)
	- Updated OAuth2 refresh token implementation (margaretha)
14/08/2018	
	- Implemented revoke all OAuth2 access tokens and authorization codes of client  
	  users when deregistering/deleting a client (margaretha)
	- Fixed update OAuth2 access token (margaretha)
	- Implemented reset client secret (margaretha)
	- Fixed revoking latest access token when refreshing OAuth2 access token (margaretha)
15/08/2018
    - Implemented OAuth2 client info controller (margaretha)
    - Implemented update OAuth2 client privilege controller for admins (margaretha)
    - Implemented unlimited authorization scope for super clients with OAuth2 password grant (margaretha)
    - Marked native clients implementation to deprecated in favour of super clients (margaretha)
    - Enabled using Bearer tokens as user authentication tokens (Authorization header value) for many 
      controllers including OAuth2 controllers (margaretha)


# version 0.60.5

09/07/2018
	- Added service layer to the search controller (margaretha)
	- Added OAuth2 scope checking in search and VC controllers (margaretha)
	- Added handling OAuth2 bearer token for VC access and User group controllers (margaretha)
	- Added default scope to password grant (margaretha)
10/07/2018
	- Made createBasicAuthorizationHeaderValue static (margaretha)
	- Added store access token in openID token service (margaretha)
	- Fixed empty scope in openID authorization and token service (margaretha)
	- Implemented storing authorization code in cache (margaretha)
11/07/2018	
	- Fixed authentication time in authentication controller (margaretha)
	- Added OAuth2 access token tests (margaretha)
12/07/2018	
	- Updated maven surefire setting for faster test suite runtime (margaretha)
	- Implemented refreshing OAuth2 access token (margaretha)
26/07/2018	
	- Fixed issue #27 (margaretha)
02/08/2018	
	- Fixed clientId encoding in OAuth2ClientControllerTest (margaretha)

	
# version 0.60.4

05/07/2018
    - implemented OAuth2 authorization code request with OpenID Authentication (margaretha)
    - enabled OAuth2 authorization without OpenID authentication using Nimbus library (margaretha)
    - implemented response handler for OpenID authentication errors in authorization requests (margaretha)
    - added tests regarding OpenID authentication in authorization requests (margaretha)
    - implemented OAuth2 authorization error response via redirect URI instead of JSON (margaretha)
    - added state to OAuth2 authorization error response (margaretha)
    - implemented OpenID token service for authorization code flow (margaretha)
    - implemented signed OpenID token with default algorithm RSA256 (margaretha)
    - implemented JSON Web Key (JWK) set web-controller listing kustvakt public keys (margaretha)
    - implemented OpenId configuration (margaretha) 
    - added authentication time and support for auth_time in id_token (margaretha)
    - implemented support for nonce and max_age parameters in OpenID authentication (margaretha)
    - implemented OAuth2 token request with password grant using Nimbus library (margaretha)
    - updated redirect URI validator (margaretha)
    - updated client registration requirement to allow desktop applications (margaretha)
    - fixed RSA key configuration (margaretha)
    - merged OAuth2 client deregistration controllers (margaretha)
    - fixed OAuth2 client unique URL-hashcode (margaretha)
    - migrated logging to log4j 2 and adapted java.util.logging to log4j(margaretha)
    - Added support for unrestricted corpus statistics (ndiewald)
    - updated paths of user-group deletion-controllers (margaretha)
    - Do not pass broken queries to Krill (diewald)
    - added OAuth2 token request with client authentication via Authorization header (margaretha)
    - added port checking in test suite (margaretha)
    
# version 0.60.3

06/06/2018
    - improved user authentication by using authentication filter for authorization code request (margaretha)
    - limited client authentication to client id checking in authorization code request (margaretha)
    - added user_id in the oauth2_access_token database table (margaretha)
    - implemented OAuth2Authentication provider for token context management (margaretha)
    - added parameter checking for authorization DAO (margaretha)
    - added controller tests using OAuth2 access token (margaretha)
    - added database tables for MySQL (margaretha)
    - updated JWT library and related codes (margaretha)    
    
# version 0.60.2

03/05/2018
    - implemented OAuth2 client registration (margaretha)
    - implemented OAuth2 client authentication (margaretha)
    - changed virtual corpus search to retrieval (margaretha)
    - implemented public client deregistration task (margaretha)
    - added client registration and deregistration tests (margaretha)
    - implemented confidential client deregistration task (margaretha)
    - fixed storing client secret (margaretha)
    - implemented OAuth2 response handler (margaretha)
    - implemented OAuth2 request access token with client credentials grant (margaretha)
    - implemented OAuth2 request access token with resource owner password grant (margaretha)
    - implemented OAuth2 authorization code request (margaretha)
    - added OAuth2 error codes (margaretha)
    - added OAuth2 authorization, scope and access token tables for SQLite (margaretha)
    - implemented OAuth2 authorization, scope and access token DAO (margaretha)
    - implemented OAuth2 request access token with authorization code grant (margaretha)
    - added setting default scopes in the config file (margaretha)
    - fixed loading spring config multiple times in the test suite (margaretha)
    - added SQLite created_date trigger for access token (margaretha)  
    - added a join table for access token scopes (margaretha)
    - added access scopes handling (margaretha)
    - added tests about request token with authorization code (margaretha)
    
# version 0.60.1

28/03/2018
    - added admin-related SQL codes (margaretha)
    - updated AdminDao (margaretha)
    - added optional username query parameter to group list controller (margaretha) 
    - fixed non hierarchical URI of kustvakt conf files (margaretha)
    - added delete group member triggers (margaretha)
    - added list user-group by username and status for system admin (margaretha)
    - added user-group status in user-group DTO (margaretha)
    - added check for hidden groups in user-group tests (margaretha)
    - added database trigger test on deleting members when deleting group (margaretha)
    - renamed VC type PREDEFINED to SYSTEM (margaretha)
    - added VC list controller for system admin (margaretha)
    - added VC controller tests with for system admin (margaretha) 
    - added hidden access removal when deleting published VC (margaretha)
    - added check for hidden groups in VC controller tests (margaretha)
    - added search user-group controller (margaretha)
    - removed createdBy from VirtualCorpusJson (margaretha)
    - moved member role setting from the invitation phase to the after-subscription phase (margaretha)
    - added member role removal after deleting members (margaretha)
    - added add and delete member role controllers (margaretha)
    
# version 0.60

14/03/2018
    - set up mail settings using localhost port 25 (margaretha)
    - added mail template in kustvakt configuration (margaretha)
    - added mail settings to readme (margaretha)
    - disabled email notification for auto group (margaretha)
    - added metadata retrieval (diewald)
    - enabled custom implementation for email address retrieval (margaretha)
    - removed old policy and deprecated code (margaretha)
    - moved authentication related code to /full (margaretha)
    - added userRoles attribute to UserGroupDto. (margaretha)
    - fixed sqlite trigger (margaretha)
    - fixed member exist error message (margaretha)
    - fixed member invitation to join deleted group (margaretha)
    - added checking deleted group (margaretha)

# version 0.59.10
    
20/02/2018 
    - added sort VC by id (margaretha)
    - added test cases regarding VC sharing (margaretha)
    - implemented withdraw VC from publication (margaretha)
    - added Changes file (margaretha)
    - implemented add/invite users to group (margaretha)
    - implemented delete user-group and member tasks (margaretha)
    - added userMemberStatus in group lists (margaretha)
    - updated and added SQL test data (margaretha)
    - added user group related tests (margaretha)
    - implemented custom configuration for deleting user groups and members (margaretha)
    - updated library versions and java environment (margaretha)
    - added expiration time check for member invitation (margaretha)
    - moved .properties files (margaretha) 
    - merged changelog file to Changes (margaretha)
    - updated status codes and error messages to be more detailed (margaretha)
    - testing mail implementation using embedded jetty jndi (margaretha)
    - fixed collection rewrite regarding OR operation with other fields (margaretha)
    - implemented sending mail using spring injection and removed jetty jndi (margaretha)
    - fixed unrecognized application/json (margaretha)
    - fixed and updated velocity template (margaretha)
    
# version 0.59.9 

19/01/2018
    - restructured basic authentication (margaretha)
    - fixed AuthenticationException to include authentication scheme (margaretha)
    - fixed rewrite redundancy in collection rewrite (margaretha)
    - fixed foundry rewrite for constituents (margaretha)
    - introduced authentication methods, schemes and tokens (margaretha)
    - implemented collection rewrite with multiple licenses (margaretha)
    - fixed foundry rewrite for korap span without wrap node (margaretha)
    - implemented list user group (margaretha)
    - implemented delete VC task (margaretha)
    - implemented create user-group, subscribe to user-groups, unsubscribe to user-groups tasks(margaretha)
    - fixed handling JSON mapping exception for missing enums (margaretha)
    - implemented list VC task (margaretha)
    - added KoralQuery in VC lists (margaretha)
    - implemented edit VC task (margaretha)
    - implemented publish VC task (margaretha)
    - implemented share VC task (margaretha)
    - implemented list only owned VC task (margaretha) 
    - implemented list VC access task (margaretha)
    - implemented search VC by id task (margaretha)
    - implemented delete VC access (margaretha)
    - implemented search for project VC (margaretha)
    - added search VC related tests (margaretha)
    - removed PredefinedUserGroup.ALL and related codes (margaretha)
    - implemented search for published VC (margaretha)
    
# version 0.59.8
 
21/09/2017
    - restructured statistics service (margaretha)
    - removed deprecated loader codes and tests (margaretha)
    - removed old Spring java configurations (margaretha)
    - implemented entity classes for the new database (margaretha)
    - added MySQL codes regarding VC and for testing (margaretha)
    - added dao methods regarding VC (margaretha)
    - added similar SQL codes (to MySQL) for sqlite (margaretha)
    - added dao methods regarding user groups (margaretha)
    - restructured web-service codes into controller and logic/business-service(margaretha)
    - implemented user role and privilege, and added tests (margaretha)
    - prepared test suite using new database (margaretha)
    - implemented UserGroupDao and tests (margaretha)
    - fixed missing exceptions in JsonUtils (margaretha)
    - restructured web filters and authentication codes (margaretha)
    - implemented create/store VC (margaretha)
    - fixed collection rewrite bug regarding availability with operation or (margaretha)    

# version 0.59.7

13/10/2016
    - MOD: updated search to use new siglen (diewald)
    - MOD: fixed matchinfo retrieval in light service (diewald)

05/05/2015
    - ADD: rest test suite for user service (hanl)
    - MOD: setup parameter modification (hanl)
    - ADD: oauth2 client unique constraint (hanl)
