Quantcast
Channel: Atlassian – Communardo Techblog
Viewing all articles
Browse latest Browse all 134

Know-How: Nutzerspezifische Daten in JIRA 6 sicher speichern

$
0
0

Wir hatten in diesem Blog bereits erwähnt, dass eine der vielen Neuerungen in JIRA 6 die änderbaren Nutzernamen sind: Es ist nun also beispielsweise möglich einen Nutzer “john_smith” nach “john_doe” umzubenennen. Aus technischer Sicht führt das allerdings zu einem Problem bei nutzerspezifischen Daten. Diese dürfen nun nicht mehr anhand des Nutzernamens gespeichert werden, denn dieser könnte sich ja eben mit der Zeit ändern. Das hätte zur Folge, dass die Daten nicht mehr diesem Nutzer – oder eventuell noch schlimmer: einem anderen Nutzer – zugeordnet wären.

Die Lösung

Die Lösung ist, den neu eingeführten Nutzerschlüssel bzw. UserKey zu verwenden. Dieser ist eindeutig, unveränderlich und wird beim Upgrade auf JIRA 6 für jeden Nutzer auf dessen Nutzernamen gesetzt. Es sind also keine Migrationsaufwände erforderlich.

Damit betroffene Plugins neben JIRA 6 auch weiterhin für JIRA 5 kompatibel sind, hat Atlassian die spezielle Bibliothek UserCompatibilityHelper bereitgestellt, mit der einfach und problemlos der UserKey benutzt werden kann. Diese Bibliothek abstrahiert das unterschiedliche Behandeln von JIRA 5 und JIRA 6, so dass der Plugin-Autor sich darauf verlassen kann, dass die nutzerspezifischen Daten sicher gespeichert und gelesen werden können.

Folgendes muss der pom.xml hinzugefügt werden:

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

In den allermeisten Fällen dürfte es dann genügen, beim Umgang mit nutzerspezifischen Daten folgende 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önnen Sie über uns direkt Lizenzen erwerben.

Viewing all articles
Browse latest Browse all 134