# version 0.61.2
12/09/2018
    - Added various log4j2 configurations (margaretha)
13/09/2018
    - Implemented VirtualCorpusRewrite (margaretha)
14/09/2018
    - Fixed SpringJerseyTest ApplicationContext (margaretha)
    - Handled VCRef with username in VirtualCorpusRewrite (margaretha)
    - Enabled VCReferenceTest in maven test suite (margaretha)
18/09/2018
    - Handled unique constraints (margaretha)
    - Added a controller for editing user group member roles (margaretha)

# version 0.61.1
28/08/2018
    - Added API URL versioning (margaretha) 
    - Deactivated IdRewrite (margaretha)
    - Fixed kustvakt controller (margaretha)
30/08/2018
    - Fixed root packages & added api version properties in kustvakt.conf (margaretha)
    - Fixed versioning in SearchController (margaretha)
    - Added API versioning tests (margaretha)

# 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)
16/08/2018
    - Implemented degrading super clients (margaretha)
    - Improved and added OAuth2 tests (margaretha)
21/08/2018
    - Added VC name pattern check (margaretha)
22/08/2018
    - Implemented loading VC from gz files (margaretha)
    - Updated OAuth2 authorization codes' & access tokens' expiry check (margaretha)
23/08/2018    
    - Updated RefreshToken implementations with separate DB tables (margaretha)
    - Allows multiple access tokens per refresh token (margaretha)
27/08/2018
    - Added statistic with VC reference tests (margaretha)
    - Fixed OAuth2 SQL files (margaretha) 
28/08/2018
    - Added c3p0 datasource configuration to Spring default-config-xml (margaretha)
    - Added running Kustvakt server with custom spring config in the readme (margaretha)
    - Removed old OAuth2 codes (margaretha)    
    - Moved non-config test codes to misc (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)
