Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel2
styledecimal

Before starting

Before starting the upgrade process, with 2.0.2 running, perform the following actions either via REST or Admin Console:

  1. Create a String multi-value configuration parameter named authentication.attributes with value 'username'
  2. Create a Long configuration parameter named jwt.lifetime.minutes with value '120'
  3. Edit the notification template with name requestPasswordReset (both in TEXT and HTML formats) and ensure that all the embedded links are updated from
    http://localhost:9080/syncope-enduser/app/#/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}
    to
    http://localhost:9080/syncope-enduser/app/#!/confirmpasswordreset?token=${input.get(0).replaceAll(' ', '%20')}

Moreover, execute the SQL query below on your internal storage:

Code Block
languagesql
UPDATE ReportletConfInstance SET serializedInstance='{"@class":"org.apache.syncope.common.lib.report.ReconciliationReportletConf","name":"dashboardReconciliationReportlet","userMatchingCond":null,"groupMatchingCond":null,"anyObjectMatchingCond":null,"features":["key","username","groupName"]}' WHERE id='d6c2b475-4860-4eb1-8fde-618299c2a97c';

After completing

After completing the upgrade process, with 2.0.3 running, perform the following actions either via REST or Admin Console:

...

Due to the changes occurred in JWT management, execute the SQL query below on your internal storage:

 

Code Block
languagesql
DELETE FROM AccessToken;
 
DROP VIEW user_search_udyngmemb;
DROP VIEW user_search_dynrmemb;
DROP VIEW anyObject_search_adyngmemb;

DROP TABLE DynRoleMembership_User;
DROP TABLE DynGroupMembership_User;
DROP TABLE DynGroupMembership_AnyObject;

CREATE TABLE UDynGroupMembers(
    any_id CHAR(36),
    group_id CHAR(36),
    UNIQUE(any_id, group_id));

CREATE TABLE ADynGroupMembers(
    anyType_id VARCHAR(255),
    any_id CHAR(36),
    group_id CHAR(36),
    UNIQUE(anyType_id, any_id, group_id));

CREATE TABLE DynRoleMembers(
    any_id CHAR(36),
    role_id VARCHAR(255),
    UNIQUE(any_id, role_id));

CREATE TABLE DynRealmMembers(
    any_id CHAR(36),
    dynRealm_id VARCHAR(255),
    UNIQUE(any_id, dynRealm_id));

CREATE INDEX UDynGroupMembers_any_id ON UDynGroupMembers(any_id);
CREATE INDEX UDynGroupMembers_group_id ON UDynGroupMembers(group_id);
CREATE INDEX ADynGroupMembers_any_id ON ADynGroupMembers(any_id);
CREATE INDEX ADynGroupMembers_group_id ON ADynGroupMembers(group_id);
CREATE INDEX DynRoleMembers_any_id ON DynRoleMembers(any_id);
CREATE INDEX DynRoleMembers_role_id ON DynRoleMembers(role_id);
CREATE INDEX DynRealmMembers_any_id ON DynRealmMembers(any_id);
CREATE INDEX DynRealmMembers_dynRealm_id ON DynRealmMembers(dynRealm_id);
CREATE INDEX UPAttrUniqueValue_attrIndex on UPlainAttrUniqueValue(attribute_id);
CREATE INDEX GPAttrUniqueValue_attrIndex on GPlainAttrUniqueValue(attribute_id);
CREATE INDEX APAttrUniqueValue_attrIndex on APlainAttrUniqueValue(attribute_id);
CREATE INDEX CPAttrUniqueValue_attrIndex on CPlainAttrUniqueValue(attribute_id);
CREATE INDEX UPlainAttr_schema_Index on UPlainAttr(schema_id);
CREATE INDEX UPlainAttr_membership_Index on UPlainAttr(membership_id);
CREATE INDEX GPlainAttr_schema_Index on GPlainAttr(schema_id);
CREATE INDEX APlainAttr_schema_Index on APlainAttr(schema_id);
CREATE INDEX APlainAttr_membership_Index on APlainAttr(membership_id);

Please beware that the statement above will, among other things, invalidate any existing session.

...

Source changes

POM

In the root pom.xml:

  • change parent/version from 2.0.

...

  • 3 to 2.0.

...

  • 4

  • change properties/syncope.version from 2.0.

...

core/pom.xml

  1. copy the whole <parent> element
  2. download the updated file
  3. replace, in the downloaded file, the <parent> element with the one saved in the first step
  4. move the downloaded file to core/pom.xml

console/pom.xml

  1. copy the whole <parent> element
  2. download the updated file
  3. replace, in the downloaded file, the <parent> element with the one saved in the first step
  4. move the downloaded file to console/pom.xml

enduser/pom.xml

  1. copy the whole <parent> element
  2. download the updated file
  3. replace, in the downloaded file, the <parent> element with the one saved in the first step
  4. move the downloaded file to enduser/pom.xml
  • 3 to 2.0.

...

  • 4

Other

Replace the following files with their 2.0.

...

4 counterparts (re-apply any customization previously made):

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...