Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
0800 1 255 255

Know-How: Nutzerspezifische Daten in JIRA 6 sicher speichern

Wir hat­ten in die­sem Blog bereits erwähnt, dass eine der vie­len Neuerungen in JIRA 6 die änder­ba­ren Nutzernamen sind: Es ist nun also bei­spiels­weise mög­lich einen Nutzer "john_smith" nach "john_doe" umzu­be­nen­nen. Aus tech­ni­scher Sicht führt das aller­dings zu einem Problem bei nut­zer­spe­zi­fi­schen Daten. Diese dür­fen nun nicht mehr anhand des Nutzernamens gespei­chert wer­den, denn die­ser könnte sich ja eben mit der Zeit ändern. Das hätte zur Folge, dass die Daten nicht mehr die­sem Nutzer – oder even­tu­ell noch schlim­mer: einem ande­ren Nutzer – zuge­ord­net wären.

Die Lösung

Die Lösung ist, den neu ein­ge­führ­ten Nutzerschlüssel bzw. UserKey zu ver­wen­den. Dieser ist ein­deu­tig, unver­än­der­lich und wird beim Upgrade auf JIRA 6 für jeden Nutzer auf des­sen Nutzernamen gesetzt. Es sind also keine Migrationsaufwände erforderlich.

Damit betrof­fene Plugins neben JIRA 6 auch wei­ter­hin für JIRA 5 kom­pa­ti­bel sind, hat Atlassian die spe­zi­elle Bibliothek UserCompatibilityHelper bereit­ge­stellt, mit der ein­fach und pro­blem­los der UserKey benutzt wer­den kann. Diese Bibliothek abs­tra­hiert das unter­schied­li­che Behandeln von JIRA 5 und JIRA 6, so dass der Plugin-Autor sich dar­auf ver­las­sen kann, dass die nut­zer­spe­zi­fi­schen Daten sicher gespei­chert und gele­sen wer­den können.

Folgendes muss der pom.xml hin­zu­ge­fügt werden:

<dependency>
    <groupId>com.atlassian.usercompatibility</groupId>
    <artifactId>usercompatibility-jira</artifactId>
</dependency>

In den aller­meis­ten Fällen dürfte es dann genü­gen, beim Umgang mit nut­zer­spe­zi­fi­schen Daten fol­gende Code-Teile zu ersetzen:

// beim Speichern: User -> ID
String userId = user.getName(); //alt
String userId = UserCompatibilityHelper.getKeyForUser(user); //neu

// beim Lesen: ID -> User
User user = userManager.getUser(userId); //alt
User user = UserCompatibilityHelper.getUserForKey(userId); //neu

Unsere Leistung für Sie

atlassian_partner_logos2   Communardo ist Atlassian Enterprise und Platinum Expert und berät Sie gern zu Fragen rund um die Atlassian Produkte (JIRA, Confluence, DevTools, etc.). Zudem kön­nen Sie über uns direkt Lizenzen erwer­ben.

Related Posts

Pin It on Pinterest