Overall Kuali Rice KIM Connector Design
The plugin consists of the grouper client jar, the grouper kim connector jar, and the grouper client config file.
Note that it might be ideal in your institution to use LDAP for readonly operations. One factor involved is how quickly group operations propagate from grouper to LDAP. If you want to use LDAP, you will have to recode the applicable operations. Note you might be able to use the grouper client instead of Java/JNDI calls. Penn's implementation of LDAP uses netId, but KIM uses an unchangeable ID, so at Penn it is not convenient to use LDAP for readonly operations unless each member is translated by another ldap call to translate between netId and pennId.
The grouper client configuration, and the plugin configuration are in the grouper.client.properties file (on classpath). Here are the plugin settings
- The connector only relies on the Grouper client, and the Rice API interfaces. So the logging used will be the grouper client logging, which uses a built in version of commons logging. This uses log4j if detected, and other logging they are detected, and defaults to Java's built in logging
- Each method implemented has debug level logging which logs each input, output, and valuable piece of information (e.g. result codes). If there is an error, the debug logging is redundant, and is omitted
- Each method has error level logging where if there is an error, it will log (to ERROR level) the input, output, results codes, etc.
- To turn on debug logging, set this in log file e.g. log4j.properties
- There is comprehensive junit testing in the grouperKimConnector eclipse project. Note: this blows away your grouper repository, so do it in a test schema
- You can hook up soapUi (web service gui) to the kim services and run through that, you will see effects in the Grouper registry:
- Install SoapUI: http://www.soapui.org/
- Make a new soapUI project
- Make sure security is off in KIM rice-config.xml (make sure this is a dev env):
- Right click on SoapUI project, and add WSDL, e.g.:
- Run a method through SoapUI