Skip to content

Optionally read affiliation from a Shibbolet attribution instead of DiscoFeed #6514

@pkiraly

Description

@pkiraly

In our Shibboleth implementation the DiscoFeed contains only one service name, and the user's affiliation is stored in an attribution of the XML file sent by Shibboleth service. This makes several problems:

  1. the service name is not an organisation name
  2. the user can not change the bad affiliation string
  3. the bad affiliation string occurs in every dataverse and dataset creation form as a default value

This situation is frustrating for bot our users and us.

Here is a suggestion for a Dataverse code change to solve this issue. It would have multiple components (all of these are pseudo code):

  1. adding an optional configuration setting: affiliationSource for the source of affiliation with two options:
  • DiscoFeed (default value, and runs the current code without any modification)
  • a Shibboleth attribute name
  1. configure Shibbolet to send the attribute we set in step 1

  2. within ShibServiceBean.getAffiliation() method add a switch like this:

AffiliationSource affiliationSource = ... // read configuration
switch (affiliationSource.getType()) {
  case AffiliationSource.Shibbolet:
    String shibbolethAttribute = affiliationSource.getShibbolethAttribute();
    String affiliation = readAffiliationFromAttribute(shibbolethAttribute);
    break;
  case AffiliationSource.DiscoFeed:
  default:
    String affiliation = ... // run current code
    break;
}

AffiliationSource has a type, which is an enum of ShibbolethAttribute and DiscoFeed, and a shibboletAttribute (String) field, which contains which attribute should be used.

note: this comment is summary of a thread at the dataverse-community mailing list: https://groups.google.com/forum/#!topic/dataverse-community/7FwrzfIQZfY.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions