My question
Do you have to send all detail ie, user, application and position, or can you leave position blank.
publicStandardPrincipalIdentity createStandardIdentity(String userName, String appName, String position) {
finalStandardPrincipalIdentity identity =newStandardPrincipalIdentity();
identity.setAppName(appName);
identity.setName(userName);
if(position !=null) {
identity.setPosition(position);
}else{
// if no explicit position has been specified, make sure we set a blank position and not 127.0.0.1/default// this is required so DACS authentication works correctlyidentity.setPosition("");
}returnidentity;
}
packagecom.reuters.rfa.common;
importcom.reuters.rfa.common.PrincipalIdentity;importcom.reuters.rfa.common.PrincipalIdentity.PrincipalIdentityType;
public final classStandardPrincipalIdentityextendsPrincipalIdentity {
String _userName ="";
String _appName ="";
String _position ="";
publicStandardPrincipalIdentity() {
}
Hello @jeff.waterman
If your application connects to TREP(ADS component) to consume data, using StandardPrincipalIdentity to perform local entitlements by RFA is deprecated. TREP performs entitlement instead and RFA application just sends TokenizedPrincipalIdentity on SSL connection(default port is 8101). For the example application, please refer to MDSubDemo example application.
To perform local entitlements for the other scenario, OpenDACS product should be used instead. To use OpenDACS, just include rfa.jar which contains OpenDACS already.
Based on my test with OpenDACS: the user, application id, and position cannot be blank("") otherwise the application receives a login denied. Moreover, the position has to be in the correct format, IP address/hostname or IP address/net. For the example application source code, please see DacsSubscribeClient shipped with Open DACS API - Java Edition - 8.0.0.L1 package
Hope this help.