iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/csiv2/CSIv2Util.java
public static CompoundSecMech[] createCompoundSecMechanisms(IORSecurityConfigMetaData metadata, Codec codec,
                                                                int sslPort, ORB orb) {
        // support just 1 security mechanism for now (and ever).
        CompoundSecMech[] csmList = new CompoundSecMech[1];

        // a CompoundSecMech contains: target_requires, transport_mech, as_context_mech, sas_context_mech.
        TaggedComponent transport_mech = createTransportMech(metadata.getTransportConfig(), codec, sslPort, orb);

        // create AS Context.
        AS_ContextSec asContext = createAuthenticationServiceContext(metadata);

        // create SAS Context.
        SAS_ContextSec sasContext = createSecureAttributeServiceContext(metadata);

        // create target_requires bit field (AssociationOption) can't read directly the transport_mech TaggedComponent.
        int target_requires = createTargetRequires(metadata.getTransportConfig()) | asContext.target_requires |
                sasContext.target_requires;

        CompoundSecMech csm = new CompoundSecMech((short) target_requires, transport_mech, asContext, sasContext);
        csmList[0] = csm;

        return csmList;
    }
public static CompoundSecMech[] createCompoundSecMechanisms(IORSecurityConfigMetaData metadata, Codec codec,
                                                                int sslPort, ORB orb) {
        // support just 1 security mechanism for now (and ever).
        CompoundSecMech[] csmList = new CompoundSecMech[1];

        // a CompoundSecMech contains: target_requires, transport_mech, as_context_mech, sas_context_mech.
        TaggedComponent transport_mech = createTransportMech(metadata.getTransportConfig(), codec, sslPort, orb);

        // create AS Context.
        AS_ContextSec asContext = createAuthenticationServiceContext(metadata);

        // create SAS Context.
        SAS_ContextSec sasContext = createSecureAttributeServiceContext(metadata);

        // create target_requires bit field (AssociationOption) can't read directly the transport_mech TaggedComponent.
        int target_requires = createTargetRequires(metadata.getTransportConfig()) | asContext.target_requires |
                sasContext.target_requires;

        CompoundSecMech csm = new CompoundSecMech((short) target_requires, transport_mech, asContext, sasContext);
        csmList[0] = csm;

        return csmList;
    }
public static CompoundSecMech [ ] createCompoundSecMechanisms ( IORSecurityConfigMetaData metadata , Codec codec , int sslPort , ORB orb ) { // support just 1 security mechanism for now (and ever). CompoundSecMech [ ] csmList = new CompoundSecMech [ 1 ] ; // a CompoundSecMech contains: target_requires, transport_mech, as_context_mech, sas_context_mech. TaggedComponent transport_mech = createTransportMech ( metadata . getTransportConfig ( ) , codec , sslPort , orb ) ; // create AS Context. AS_ContextSec asContext = createAuthenticationServiceContext ( metadata ) ; // create SAS Context. SAS_ContextSec sasContext = createSecureAttributeServiceContext ( metadata ) ; // create target_requires bit field (AssociationOption) can't read directly the transport_mech TaggedComponent. int target_requires = createTargetRequires ( metadata . getTransportConfig ( ) ) | asContext . target_requires | sasContext . target_requires ; CompoundSecMech csm = new CompoundSecMech ( ( short ) target_requires , transport_mech , asContext , sasContext ) ; csmList [ 0 ] = csm ; return csmList ; }
<p>
Create a {@code org.omg.CSIIOP.CompoundSecMechanisms} which is a sequence of {@code CompoundSecMech}. Here we only
support one security mechanism.
</p>

@param metadata the metadata object that contains the CSIv2 security configuration info.
@param codec    the {@code Codec} used to encode the CSIv2 security component.
@param sslPort  an {@code int} representing the SSL port.
@param orb      a reference to the running {@code ORB}.
@return the constructed {@code CompoundSecMech} array.
<p > Create a { @code org . omg . CSIIOP . CompoundSecMechanisms } which is a sequence of { @code CompoundSecMech } . Here we only support one security mechanism . < / p >