10
Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

Embed Size (px)

Citation preview

Page 1: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

Grouper Training – Admin – Subject API – Part 4

Shilen Patel

Duke University

This work licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Page 2: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

2

Contents

• Member sorting and searching• Building your own source adapter• Subject filtering and attribute decorator

Page 3: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

3

Member Sorting and Searching

• grouper_members table contains additional columns to allow searching and sorting without resolving all subjects.

• Five columns used for sorting and five columns used for searching.

• Different search columns exist since each one may contain different data based on privacy.

• Different sort columns exist to allow sorting using different attributes.

• Columns updated when subject is resolved by id or identifier or when running USDU (for people).

Page 4: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

4

Member Sorting and Searching (continued)

• Configure access in grouper.properties. By default, all users can use all columns. For example:security.member.sort.string0.allowOnlyGroup = etc:someGroup

security.member.sort.string1.wheelOnly = true

security.member.search.string0.allowOnlyGroup = etc:someGroup

• Specify default sorting and searching.member.search.defaultIndexOrder=0

member.sort.defaultIndexOrder=0

Page 5: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

5

Member Sorting and Searching (continued)

• Example of how to populate columns:

• sort0 = Sort by namesort1 = Sort by last namesort2 = Sort by login idsearch0 = default search for privileged userssearch1 = default search for all other users

sort0 sort1 sort2 search0 search1

person source

displayName sn uid displayName, uid,ou

displayName, uid

group source

displayExtension null null name, displayName, alternateName

name, displayName, alternateName

Page 6: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

6

Building your own source adapter

• Implement edu.internet2.middleware.subject.Source • or extend

edu.internet2.middleware.subject.provider.BaseSourceAdapter

• Implement edu.internet2.middleware.subject.Subject • or just use or extend

edu.internet2.middleware.subject.provider.SubjectImpl

Page 7: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

7

Subject filtering and attribute decorator

• Implement edu.internet2.middleware.grouper.subj.SubjectCustomizer• or extend

edu.internet2.middleware.grouper.subj.SubjectCustomizerBase• https://spaces.internet2.edu/display/Grouper/

Grouper+subject+filter+and+attribute+decorator

• Configure in grouper.propertiessubjects.customizer.className =

• Subject Filtering• Allows you to secure attribute release.• Edit, remove, or add subject attributes when subjects are resolved.• Extend filterSubjects() method.

• public Set<Subject> filterSubjects(GrouperSession grouperSession, Set<Subject> subjects, String findSubjectsInStemName);

Page 8: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

8

Subject filtering and attribute decorator (continued)

• Attribute decorator• Mainly used by Grouper Web Services.• Allows clients to make attribute requests that are not configured in

the Subject API. Your method can verify that the caller is allowed to see the data, run queries to retrieve the data, and add the attributes to the subject(s).

• Extend decorateSubjects() method.• public Set<Subject> decorateSubjects(GrouperSession grouperSession,

Set<Subject> subjects, Collection<String> attributeNamesRequested);

Page 9: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

9

Quiz

• Click on the quiz link in the video description to reinforce your knowledge of this topic

Page 10: Grouper Training – Admin – Subject API – Part 4 Shilen Patel Duke University This work licensed under a Creative Commons Attribution-NonCommercial 3.0

Thanks!

Further information:

• Infosheets, mailing lists, wiki, downloads, etc.:www.internet2.edu/grouper

• Grouper demo server:grouperdemo.internet2.edu/

• Grouper Online Training Home:spaces.internet2.edu/x/IIGfAQ

This work licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License. 10