...
Code Block |
---|
{ "version": "1", //Message format version "timestamp": "createtime of message", "sequence": "1", //message sequence number, integer, increments per-message "securityImplementation": "edu.internet2.middleware.grouperClient.messaging.security.PlainMessageSecurity", "payload": { "eventType": "MEMBERSHIP_ADD", "fieldName": "members", "groupId": "4854cde794b34948911bfea5b2acb611", "groupName": "atlassian:jira:jira-users", "id": "e8497c14bd6346b1aacca3ac13a25246", "membershipType": "flattened", "sequenceNumber": "388", "sourceId": "jdbc", "subjectId": "test.subject.2" } } |
Interface for message formatting
Code Block |
---|
/**
* @author mchyzer
* $Id$
*/
package edu.internet2.middleware.grouperClient.messaging.security;
import java.util.Collection;
import net.sf.json.JSONObject;
/**
* Implement this interface to provide security on messages since in Grouper
*/
public interface MessageSecurity {
/**
* encrypt (or not) or sign or whatever
* @param sendFrom
* @param sendTo
* @param messageContainer
* @return the json object with the container, and an unencrypted payload
*/
public JSONObject processForSend(String sendFrom, String sendTo, JSONObject messageContainer);
/**
* encrypt (or not) or sign or whatever
* @param sendFrom
* @param sendTos
* @param messageContainer
* @return the json object to send
*/
public JSONObject processForSend(String sendFrom, Collection<String> sendTos, JSONObject messageContainer);
/**
* encrypt (or not) or sign or whatever
* @param sendFrom
* @param sendTo
* @param messageContainer
* @return the json object to send
*/
public JSONObject processForReceive(String sendFrom, String sendTo, JSONObject messageContainer);
}
|
Example of encrypting point-to-point
Code Block |
---|
{
"version": "1", //Message format version
"timestamp": "createtime of message",
"sequence": "1", //message sequence number, integer, increments per-message
"securityImplementation": " edu.internet2.middleware.grouperClient.messaging.security.SymmetricEncryptAesCbcPkcs5PaddingMessageSecurity",
"edu.internet2.middleware.grouperClient.messaging.security.SymmetricEncryptAesCbcPkcs5PaddingMessageSecurity.secretSha1First4": "c4h2", //could have message security params, and namespaced
"payload": " xRnr1VN1F0kWS4uWuSpo3l75uJWI...MKx1GzN8="
}
|
The encrypted payload is a JSON string
Code Block |
---|
{
"eventType": "MEMBERSHIP_ADD",
"fieldName": ...
|
sdf