djencks     2005/11/22 23:04:14

  Modified:    
modules/openejb-builder/src/java/org/openejb/corba/security/config/tss
                        TSSConfigEditor.java
  Log:

  GERONIMO-1122 Support 3 levels of principal wrapping.  I did not change the 
schema version.
  
  Revision  Changes    Path
  1.10      +36 -20    
openejb/modules/openejb-builder/src/java/org/openejb/corba/security/config/tss/TSSConfigEditor.java
  
  Index: TSSConfigEditor.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/corba/security/config/tss/TSSConfigEditor.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- TSSConfigEditor.java      27 Oct 2005 19:10:14 -0000      1.9
  +++ TSSConfigEditor.java      23 Nov 2005 04:04:14 -0000      1.10
  @@ -46,6 +46,7 @@
   
   import java.util.Iterator;
   import java.util.List;
  +import java.lang.reflect.Constructor;
   
   import org.apache.xmlbeans.XmlException;
   import org.apache.xmlbeans.XmlObject;
  @@ -69,6 +70,7 @@
   import org.apache.geronimo.security.deploy.DefaultPrincipal;
   import org.apache.geronimo.security.deployment.SecurityBuilder;
   import org.apache.geronimo.xbeans.geronimo.security.GerDefaultPrincipalType;
  +import org.apache.geronimo.kernel.ClassLoading;
   
   import org.openejb.xbeans.csiv2.tss.TSSAssociationOption;
   import org.openejb.xbeans.csiv2.tss.TSSCompoundSecMechType;
  @@ -144,7 +146,7 @@
   
               TSSCompoundSecMechType[] mechList = 
tss.getCompoundSecMechTypeList().getCompoundSecMechArray();
               for (int i = 0; i < mechList.length; i++) {
  -                TSSCompoundSecMechConfig cMech = 
extractCompoundSecMech(mechList[i]);
  +                TSSCompoundSecMechConfig cMech = 
extractCompoundSecMech(mechList[i], cl);
                   cMech.setTransport_mech(tssConfig.getTransport_mech());
                   mechListConfig.add(cMech);
               }
  @@ -165,7 +167,7 @@
           return sslConfig;
       }
   
  -    protected static TSSCompoundSecMechConfig 
extractCompoundSecMech(TSSCompoundSecMechType mech) {
  +    protected static TSSCompoundSecMechConfig 
extractCompoundSecMech(TSSCompoundSecMechType mech, ClassLoader cl) throws 
DeploymentException {
   
           TSSCompoundSecMechConfig result = new TSSCompoundSecMechConfig();
   
  @@ -176,7 +178,7 @@
           }
   
           if (mech.isSetSasMech()) {
  -            result.setSas_mech(extractSASMech(mech.getSasMech()));
  +            result.setSas_mech(extractSASMech(mech.getSasMech(), cl));
           }
   
           return result;
  @@ -192,7 +194,7 @@
           return gssupConfig;
       }
   
  -    protected static TSSSASMechConfig extractSASMech(TSSSasMechType sasMech) 
{
  +    protected static TSSSASMechConfig extractSASMech(TSSSasMechType sasMech, 
ClassLoader cl) throws DeploymentException {
   
           TSSSASMechConfig sasMechConfig = new TSSSASMechConfig();
   
  @@ -219,27 +221,41 @@
                   sasMechConfig.addIdentityToken(new TSSITTAnonymous());
               }
               if (identityTokenTypes.isSetITTPrincipalNameGSSUP()) {
  -                String realmName = 
identityTokenTypes.getITTPrincipalNameGSSUP().getRealmName();
  -                String domainName = 
identityTokenTypes.getITTPrincipalNameGSSUP().getDomainName();
  -
  -                realmName = (realmName == null ? "" : realmName.trim());
  -                domainName = (domainName == null ? "" : domainName.trim());
  -                sasMechConfig.addIdentityToken(new 
TSSITTPrincipalNameGSSUP(realmName, domainName));
  +                org.openejb.xbeans.csiv2.tss.TSSITTPrincipalNameGSSUPType 
ittPrincipalNameGSSUP = identityTokenTypes.getITTPrincipalNameGSSUP();
  +                String principalClassName = 
ittPrincipalNameGSSUP.getPrincipalClass();
  +                Class principalClass;
  +                try {
  +                    principalClass = 
ClassLoading.loadClass(principalClassName, cl);
  +                } catch (ClassNotFoundException e) {
  +                    throw new DeploymentException("Could not load principal 
class", e);
  +                }
  +                String domainName = ittPrincipalNameGSSUP.isSetDomain() ? 
ittPrincipalNameGSSUP.getDomain().trim() : null;
  +                String realmName = null;
  +                if (domainName != null && 
ittPrincipalNameGSSUP.isSetRealm()) {
  +                    realmName = ittPrincipalNameGSSUP.getRealm().trim();
  +                }
  +
  +
  +                try {
  +                    sasMechConfig.addIdentityToken(new 
TSSITTPrincipalNameGSSUP(principalClass, realmName, domainName));
  +                } catch (NoSuchMethodException e) {
  +                    throw new DeploymentException("Could not find principal 
class constructor", e);
  +                }
               }
               if (identityTokenTypes.isSetITTDistinguishedName()) {
  -                String realmName = 
identityTokenTypes.getITTDistinguishedName().getRealmName();
  -                String domainName = 
identityTokenTypes.getITTDistinguishedName().getDomainName();
  +                String realmName = 
identityTokenTypes.getITTDistinguishedName().getRealm();
  +                String domainName = 
identityTokenTypes.getITTDistinguishedName().getDomain();
   
  -                realmName = (realmName == null ? "" : realmName.trim());
  -                domainName = (domainName == null ? "" : domainName.trim());
  +                realmName = (realmName == null ? null : realmName.trim());
  +                domainName = (domainName == null ? null : domainName.trim());
                   sasMechConfig.addIdentityToken(new 
TSSITTDistinguishedName(realmName, domainName));
               }
               if (identityTokenTypes.isSetITTX509CertChain()) {
  -                String realmName = 
identityTokenTypes.getITTX509CertChain().getRealmName();
  -                String domainName = 
identityTokenTypes.getITTX509CertChain().getDomainName();
  +                String realmName = 
identityTokenTypes.getITTX509CertChain().getRealm();
  +                String domainName = 
identityTokenTypes.getITTX509CertChain().getDomain();
   
  -                realmName = (realmName == null ? "" : realmName.trim());
  -                domainName = (domainName == null ? "" : domainName.trim());
  +                realmName = (realmName == null ? null : realmName.trim());
  +                domainName = (domainName == null ? null : domainName.trim());
                   sasMechConfig.addIdentityToken(new 
TSSITTX509CertChain(realmName, domainName));
               }
           }
  
  
  

Reply via email to