private Subject generateDefaultRealmSubject(String argument) {
Subject defaultSubject = new Subject();
String[] tokens = argument.substring(DEFAULT_REALM_PRINCIPAL.length()).split(":");
if (tokens.length != 4) throw new GeronimoSecurityException("Unable to create primary realm principal");
String realm = tokens[0];
String domain = tokens[1];
String className = tokens[2];
String principalName = tokens[3];
if (realm.length() == 0 || domain.length() == 0 || className.length() == 0 || principalName.length() == 0) {
throw new GeronimoSecurityException("Unable to create primary realm principal");
}
RealmPrincipal realmPrincipal = ConfigurationUtil.generateRealmPrincipal(realm, domain, className, principalName, classLoader);
if (realmPrincipal == null) {
throw new GeronimoSecurityException("Unable to create realm principal");
}
PrimaryRealmPrincipal primaryRealmPrincipal = null;
try {
primaryRealmPrincipal = ConfigurationUtil.generatePrimaryRealmPrincipal(realm, domain, className, principalName, classLoader);
} catch (DeploymentException e) {
throw new GeronimoSecurityException("Unable to create primary realm principal", e);
}
defaultSubject.getPrincipals().add(realmPrincipal);
defaultSubject.getPrincipals().add(primaryRealmPrincipal);