...
In this case, here is a group in ldap:
Code Block |
---|
cn=test:ldapTesting:test1,ou=groups,dc=upenn,dc=edu |
With hasMember attribute values:
...
There is another group in ldap:
Code Block |
---|
cn=test:testGroup,ou=groups,dc=upenn,dc=edu |
With hasMember attribute values:
Code Block |
---|
bwhchoatebwh choate mchyzer harveycg mchyzerharveycg |
Make sure the member ids in LDAP are subject ids or identifiers in Grouper. In this case, I am using a new instance of Grouper, not my institutional one, so I will just make a new source, and insert dummy data, with subject identifiers (even though subject id's are more efficient)
Run this SQL (note, this is tested in mysql, but will work with small adjustment in any db)
Code Block |
---|
CREATE TABLE `person_source_v` ( `penn_id` VARCHAR(50) NOT NULL, `name` VARCHAR(50) DEFAULT NULL, `email` VARCHAR(200) DEFAULT NULL, `description` VARCHAR(50) DEFAULT NULL, `pennname` VARCHAR(50) DEFAULT NULL, `description_lower` VARCHAR(50) DEFAULT NULL, PRIMARY KEY (`penn_id`) ); INSERT INTO `person_source_v`(`penn_id`,`name`,`description`,`pennname`,`description_lower`) VALUES ('44567890','Chris Hyzer','Chris Hyzer','mchyzer','chris hyzer, mchyzer, 44567890'), ('11234567','John Smith','John Smith','jsmith','john smith, jsmith, 11234567'), ('12345678','Bryan Hall','Bryan Hall','bwh','bryan hall, bwh, 12345678'), ('22345678','Bill Choate','Bill Choate','choate','bill choate, choate, 22345678'), ('33456789','Craig Harvey','Craig Harvey','harveycg','craig harvey, harveycg, 33456789') ; COMMIT; |
Here is the sources.xml config:
Code Block |
---|
<source adapterClass="edu.internet2.middleware.subject.provider.JDBCSourceAdapter2">
<id>pennperson</id>
<name>Penn person</name>
<type>person</type>
<init-param>
<param-name>jdbcConnectionProvider</param-name>
<param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider</param-value>
</init-param>
<init-param>
<param-name>maxResults</param-name>
<param-value>1000</param-value>
</init-param>
<init-param>
<param-name>dbTableOrView</param-name>
<param-value>person_source_v</param-value>
</init-param>
<init-param>
<param-name>subjectIdCol</param-name>
<param-value>penn_id</param-value>
</init-param>
<init-param>
<param-name>nameCol</param-name>
<param-value>name</param-value>
</init-param>
<init-param>
<param-name>descriptionCol</param-name>
<param-value>description</param-value>
</init-param>
<init-param>
<!-- search col where general searches take place, lower case -->
<param-name>lowerSearchCol</param-name>
<param-value>description_lower</param-value>
</init-param>
<init-param>
<!-- optional col if you want the search results sorted in the API (note, UI might override) -->
<param-name>defaultSortCol</param-name>
<param-value>description</param-value>
</init-param>
<init-param>
<!-- col which identifies the row, perhaps not subjectId -->
<param-name>subjectIdentifierCol0</param-name>
<param-value>pennname</param-value>
</init-param>
<init-param>
<param-name>subjectIdentifierCol1</param-name>
<param-value>penn_id</param-value>
</init-param>
<!-- now you can count up from 0 to N of attributes for various cols -->
<init-param>
<param-name>subjectAttributeCol0</param-name>
<param-value>pennname</param-value>
</init-param>
<init-param>
<param-name>subjectAttributeName0</param-name>
<param-value>PENNNAME</param-value>
</init-param>
<init-param>
<param-name>subjectAttributeCol1</param-name>
<param-value>email</param-value>
</init-param>
<init-param>
<param-name>subjectAttributeName1</param-name>
<param-value>EMAIL</param-value>
</init-param>
<init-param>
<param-name>sortAttribute0</param-name>
<param-value>description</param-value>
</init-param>
<init-param>
<param-name>searchAttribute0</param-name>
<param-value>description_lower</param-value>
</init-param>
</source>
|
Now you can configure the loader in GSH:
sdf