Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Current »

Overview

“GDPR API” is a library for Atlassian plugins "GDPR (DSGVO) and Security for Jira" and "GDPR (DSGVO) and Security for Confluence" (https://marketplace.atlassian.com/apps/1218962/gdpr-dsgvo-and-security-for-jira?hosting=server&tab=overview, https://marketplace.atlassian.com/apps/1219041/gdpr-dsgvo-and-security-for-confluence?hosting=server&tab=overview). The library provides the API for integration with 3rd party apps and plugins for Jira and Confluence. Through this integration and using the library other plugins may extent anonymization functionality and clean-up some special content during the "User Anonymization process".

Anonymization architecture

Steps to build an integration

  1. Add “gdpr-api” library to pom.xml

  2. Implement IGDPRAnonymizer


pom.xml example:

<dependencies>
    <dependency>
        <groupId>de.actonic</groupId>
        <artifactId>gdpr-api</artifactId>
        <version>1.0.2</version>
    </dependency>
</dependencies>
 
...
 
<Export-Package>
    de.actonic.gdpr.api.*,
</Export-Package>
 
...
 
<DynamicImport-Package>
    de.actonic.jira.gdpr.api.*;resolution:="optional",
</DynamicImport-Package>


Anonymization function implementation example:

package com.other.test.testGDPRApiPlugin;

import java.util.*;

import com.atlassian.jira.component.*;
import de.actonic.gdpr.api.*;
import org.springframework.beans.factory.*;
import org.springframework.stereotype.*;

@Component
public class Anonymizer implements IGDPRAnonymizer, InitializingBean, DisposableBean {
	...
		// class constructor and some other unnecessary parts are skipped 
	...

	@Override
	public List<GDPRAnonymizeObject> search(List<String> sourceUserKeys) {
		List<GDPRAnonymizeObject> anonymizeObjects = new ArrayList<>();
		for (String sourceUserKey : sourceUserKeys) {
			ApplicationUser applicationUser = userManager.getUserByKey(sourceUserKey);
			if (applicationUser != null) {
				Collection<PortalPage> portalPages = portalPageManager.getAllOwnedPortalPages(applicationUser);
				for (PortalPage portalPage : portalPages) {
					anonymizeObjects.add(new GDPRAnonymizeObject(portalPage.getName(), "Dashboard", "/secure/Dashboard.jspa?selectPageId=" + portalPage.getId()));
				}
			}
		}
		return anonymizeObjects;
	}

    @Override
    public List<GDPRAnonymizeObject> anonymize(List<String> sourceUserKeys, String targetUserKey) {
		// here you anonymize all data by incoming parameters and return the result
        return null;
    }

    @Override
    public void stop() {
		// here you interrupt the search/anonymization process
    }

    @Override
    public String getPluginName() {
        return "Plugin #2";
    }

    @Override
    public String getAnonymizerName() {
        return "User actions anonymizer";
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        IGDPRAnonymizeService anonymizeService = ComponentAccessor.getOSGiComponentInstanceOfType(IGDPRAnonymizeService.class);
        if (anonymizeService != null) {
            anonymizeService.addAnonymizer(this);
        }
    }

    @Override
    public void destroy() throws Exception {
        IGDPRAnonymizeService anonymizeService = ComponentAccessor.getOSGiComponentInstanceOfType(IGDPRAnonymizeService.class);
        if (anonymizeService != null) {
            anonymizeService.removeAnonymizer(this);
        }
    }
}

How to check the integration

  1. Install the latest version of GDPR (DSGVO) and Security for Jira (https://marketplace.atlassian.com/apps/1218962/gdpr-dsgvo-and-security-for-jira?hosting=server&tab=overview)

  2. Install your app to the same server

  3. Open the “Data Cleaner” module https://%your-jira-server%/jira/secure/admin/actonic-gdpr-data-cleaner.jspa

  4. Find your app in the “Anonymization post-functions” list

  5. Try to search some personal content for a user, who is working with your app (check that your post function was selected)

  6. Look at the search results at https://%your-jira-server%/jira/secure/admin/actonic-gdpr-data-cleaner-results.jspa?templateId=-1

In case of any difficulties please contact us by https://actonic.atlassian.net/servicedesk/customer/portal/8

  • No labels