final String realm;
private final String NAME,mailHost,mailFrom;
+ private final Set<String> supportedRealms;
public DefaultOrg(Env env, String realm) throws OrganizationException {
this.realm = realm;
+ supportedRealms=new HashSet<String>();
+ supportedRealms.add(realm);
domain=FQI.reverseDomain(realm);
atDomain = '@'+domain;
String s;
if(temp==null) {
temp = env.getProperty(AAF_DATA_DIR);
if(temp!=null) {
- env.warn().log(defFile, "is not defined. Using default: ",temp+"/identities.dat");
+ env.warn().log(defFile, " is not defined. Using default: ",temp+"/identities.dat");
File dir = new File(temp);
fIdentities=new File(dir,"identities.dat");
if(!fIdentities.exists()) {
Identity mechid = getIdentity(trans, vars[0]);
if(mechid!=null) {
Identity sponsor = mechid.responsibleTo();
- if(sponsor!=null && requestor.equals(sponsor.fullID())) {
+ if(sponsor!=null && requestor.fullID().equals(sponsor.fullID())) {
return null;
} else {
return trans.user() + " is not the Sponsor of MechID " + vars[0];
return addressArray;
}
-
+ private String extractRealm(final String r) {
+ int at;
+ if((at=r.indexOf('@'))>=0) {
+ return FQI.reverseDomain(r.substring(at+1));
+ }
+ return r;
}
+ @Override
+ public boolean supportsRealm(final String r) {
+ if(r.endsWith(realm)) {
+ return true;
+ } else {
+ String erealm = extractRealm(r);
+ for(String sr : supportedRealms) {
+ if(erealm.startsWith(sr)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public synchronized void addSupportedRealm(final String r) {
+ supportedRealms.add(extractRealm(r));
+ }
+
+}