# version 0.62.4
24/01/2020
   - Removed salt from config and updated config files.
   
# version 0.62.3
03/12/2019
   - Implemented pipe extension in the search API (margaretha)
11/12/2019
   - Added errors when requesting VC in caching process (margaretha, 
   resolved #47)
12/12/2019
   - Added support for multiple cq parameters (margaretha, resolved #46)
13/12/2019
   - Handled pipe errors and added tests (margaretha)
19/12/2019
   - Updated create update user-group API (margaretha)
20/12/2019
   - Removed transactional annotations from simple select queries (margaretha)
   - Updated free resource controller (margaretha)
15/01-2020
   - Added additional statistic figures to virtual corpus info API 
     response (margaretha)   
    
# version 0.62.2
17/10/2019
   - Handled vulnerability CVE-2019-17195. (margaretha)
8/11/2019
   - Added user-group name pattern (margaretha, issue #33)
11/11/2019
   - Updated user group service paths and replaced groupId with groupName 
     (margaretha, resolved #33)
12/11/2019
   - Removed UserGroupJson & updated listUserGroups and createUserGroup 
     services (margaretha)
   - Added prefixes to username and groupname parameters in service paths 
     (margaretha, resolved #35)
13/11/2019
   - Added tests for issue #43 (margaretha)
14/11/2019
   - Added client description and URL to list-authorized-clients service 
     (margaretha, close #53)
   - Implemented a service to list clients registered by a user (margaretha, 
     close #52)
   - Added a check for OAuth2 client, VC, and group name length (margaretha)
15/11/2019
   - Merged list authorized client and list registered client services
     (margaretha)
21/11/2019
   - Added a service to list active refresh tokens of a user (margaretha)
   - Added username filtering to token revocation service via super client 
     (margaretha)
26/11/2019
   - Added a service to revoke a single refresh token via super client 
     (margaretha)  

# version 0.62.1
08/07/2019
   - Added tests for public metadata response in search api (margaretha, 
     issue #43)
   - Disabled some tests of unused/disabled web-services (margaretha)
07/08/2019
   - Fixed missing scopes after requesting access token with refresh token 
     (margaretha)
   - Fixed post requests with status OK and empty body (margaretha)
07/08/2019
   - Added users to hidden group when searching in a published VC (margaretha, 
     resolved #40)
15/08/2019
   - Updated the response statuses of VC PUT requests (margaretha)

# version 0.62
28/02/2019
   - Removed old VC controllers and updated tests (margaretha, issue #34)
   - Updated VC access controllers (margaretha)
19/03/2019
   - Added close index controller (margaretha)
11/04/2019
   - Fixed unknown authentication scheme, missing VC entity, and parameter 
     checker (margaretha)
   - Fixed sharing unknown VC, updating corpusQuery, and handling non-
     unique group name and unknown VC access (margaretha)
27/06/2019
   - Handled LDAP errors, fixed #45 (margaretha)
03/07/2019
   - Added re-caching VC at closing-index service, resolved #44 (margaretha)
   - Changed the response media-type of authentication controllers (margaretha)
   - Fixed bugs: allow guest to retrieve system VC, 
     remove VC from cache when it is deleted (margaretha)
04/07/2019
   - Updated VC name pattern and tests (margaretha)

# version 0.61.6
04/02/2019
   - Fixed SQL data and merged oauth2_client_url and oauth2_client (margaretha)
   - Updated client deregistration behavior (margaretha)
05/02/2019
   - Added delete-group-by-name controller (margaretha)
   - Added unique index to group name (margaretha)
06/02/2019
   - Updated a user setting test using array for multiple values (margaretha)
   - Added metadata controller tests (margaretha)
18/02/2019
   - Fixed tests (margaretha)
   - Updated handling errors from Koral (margaretha)
19/02/2019
   - Added fields to metadata controller (margaretha, issue #39)

# version 0.61.5
17/12/2018
   - Added a search timeout test (margaretha)
18/12/2018
   - Updated tests using BeanConfigTest to use SpringJerseyTest (margaretha)
08/01/2019
   - Improved predefined vc caching (issue #28, margaretha)
09/01/2019
   - Added comments (margaretha)
   - Updated code structure (margaretha)
11/01/2019
   - Degraded API version to 1.0 (margaretha)
   - Added OAuth2 client info tests (margaretha)
14/01/2019
   - Added retrieveVCByName and deleteVCByName controllers (margaretha)
16/01/2019
   - Added a PUT request for both creating and editing vc (margaretha)
   - Added aliases to some VC controllers (margaretha)
   - Merged VC access list controllers (margaretha)
21/01/2019
   - Removed codes related to user registration & password management (margaretha)
22/01/2019
   - Added create, edit, retrieve user default setting controllers (margaretha)
22/01/2019
   - Updated default setting controllers & added tests (margaretha)
   - Added delete key in setting controllers (margaretha)
23/01/2019
   - Added default setting key validation (margaretha)
   - Fixed UserdataTest (margaretha) 
24/01/2019
   - Added default setting key validation & fixed UserdataTest (margaretha)
25/01/2019   
   - Added VC reference and MapUtil tests (margaretha)
28/01/2019
   - Fixed username verification in DefaultSettingService (margaretha)
   - Added foundry rewrite with user default setting (margaretha)
   - Added default foundry for morphology layer (margaretha)
29/01/2019
   - Fixed share VC type (margaretha)
   - Added delete setting controller (margaretha)
   - Handled "no resource found" cases (margaretha, issue #37)
30/01/2019
   - Added server shutdown description in readme (margaretha) 

# version 0.61.4
14/11/2018
   - Integrated lite and full services and controllers in core (margaretha)
21/11/2018
   - Updated OAuth2 refresh token request to create a new refresh token and 
     revoke the old one per request (margaretha)
28/11/2018
   - Updated NamedVCLoader to delete existing VC in DB (margaretha)
   - Handled storing cached VC with VC reference (margaretha)
29/11/2018
   - Added a controller for listing user clients having active refresh tokens 
     (margaretha)
6/12/2018
   - Added debug flags to mitigate log4j debugging performance (margaretha)
   - Fixed KoralNode at() method (margaretha)
11/12/2018
   - Implemented revoking all tokens of a user client via a super client
   (margaretha)   
   - Removed document controllers and KustvaktResource (margaretha)
   - Fixed rewrite bugs (updated rewriteQuery & KoralNode) (margaretha)

   
# version 0.61.3
17/10/2018
   - Updated NamedVCLoader to be optional (margaretha)
   - Updated annotation tables & implemented key-value structure (margaretha)
   - Added annotation parser for annotation data from kalamar (margaretha)
   - Implemented parsing free resource info from json (margaretha)
22/10/2018
   - Updated jetty, spring and hibernate versions (margaretha)
   - Fixed the order of annotation keys and values, and added tests (margaretha)
   - Fixed resource DAO & added tests (margaretha)
24/10/2018
   - Fixed query serialization service (margaretha)
   - Added "highlights" parameter to matchInfo controller (margaretha)
   - Added "fields" parameter to search controllers (margaretha)
   - Integrated lite controllers, services and tests in full version (margaretha)
29/10/2018
   - Moved javax.servlet-api to core (margaretha)
07/11/2018
   - OpenJDK8u181-workaround (see Debian Bug report #911925; diewald)
13/11/2018
   - Added Shutdown handler to Jetty server (margaretha)
   - Fixed storing VC order in NamedVCLoader (margaretha)

# 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 / inserting duplicate items to DB (margaretha)
   - Added a controller for editing user group member roles (margaretha)
19/09/2018
   - Fixed cached-VC ref with username (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 reference 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/2018s
   - 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)
