From: Scott M S. <st...@us...> - 2004-07-08 02:56:33
|
User: starksm Date: 04/07/07 19:56:26 Modified: iiop/src/main/org/jboss/iiop/csiv2 CSIv2Util.java Log: Add a public static void toString(CompoundSecMech securityMech, StringBuffer buffer) method Revision Changes Path 1.9 +81 -25 contrib/iiop/src/main/org/jboss/iiop/csiv2/CSIv2Util.java Index: CSIv2Util.java =================================================================== RCS file: /cvsroot/jboss/contrib/iiop/src/main/org/jboss/iiop/csiv2/CSIv2Util.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- CSIv2Util.java 29 Jun 2004 04:12:53 -0000 1.8 +++ CSIv2Util.java 8 Jul 2004 02:56:26 -0000 1.9 @@ -10,6 +10,7 @@ package org.jboss.iiop.csiv2; import java.net.InetAddress; +import java.io.UnsupportedEncodingException; import org.omg.CORBA.ORB; import org.omg.CORBA.Any; @@ -66,7 +67,7 @@ * * @author Dim...@jb... * @author Francisco Reverbel - * @version $Revision: 1.8 $ + * @version $Revision: 1.9 $ */ public final class CSIv2Util { @@ -618,39 +619,39 @@ * exceptions. */ public static CompoundSecMech getMatchingSecurityMech(ClientRequestInfo ri, - Codec codec, - short clientSupports, - short clientRequires) + Codec codec, + short clientSupports, + short clientRequires) { CompoundSecMechList csmList = null; try { - TaggedComponent tc = + TaggedComponent tc = ri.get_effective_component(TAG_CSI_SEC_MECH_LIST.value); - + Any any = codec.decode_value(tc.component_data, - CompoundSecMechListHelper.type()); - + CompoundSecMechListHelper.type()); + csmList = CompoundSecMechListHelper.extract(any); // look for the first matching security mech - for (int i = 0; i < csmList.mechanism_list.length; i++) + for(int i = 0; i < csmList.mechanism_list.length; i++) { CompoundSecMech securityMech = csmList.mechanism_list[i]; AS_ContextSec authConfig = securityMech.as_context_mech; - - if ((EstablishTrustInTarget.value - & (clientRequires ^ authConfig.target_supports) - & ~authConfig.target_supports) != 0) + + if( (EstablishTrustInTarget.value + & (clientRequires ^ authConfig.target_supports) + & ~authConfig.target_supports) != 0 ) { // client requires EstablishTrustInTarget, // but target does not support it: continue; // skip this securityMech } - - if ((EstablishTrustInClient.value - & (authConfig.target_requires ^ clientSupports) - & ~clientSupports) != 0) + + if( (EstablishTrustInClient.value + & (authConfig.target_requires ^ clientSupports) + & ~clientSupports) != 0 ) { // target requires EstablishTrustInClient, // but client does not support it: @@ -659,9 +660,9 @@ SAS_ContextSec identityConfig = securityMech.sas_context_mech; - if ((IdentityAssertion.value - & (identityConfig.target_requires ^ clientSupports) - & ~clientSupports) != 0) + if( (IdentityAssertion.value + & (identityConfig.target_requires ^ clientSupports) + & ~clientSupports) != 0 ) { // target requires IdentityAssertion, // but client does not support it: @@ -674,21 +675,76 @@ // no matching securityMech was found return null; } - catch (BAD_PARAM e) + catch(BAD_PARAM e) { // no component with TAG_CSI_SEC_MECH_LIST was found return null; } - catch (org.omg.IOP.CodecPackage.TypeMismatch e) + catch(org.omg.IOP.CodecPackage.TypeMismatch e) { - // unexpected exception in codec.decode_value + // unexpected exception in codec.decode_value throw new MARSHAL("Unexpected exception: " + e); } - catch (org.omg.IOP.CodecPackage.FormatMismatch e) + catch(org.omg.IOP.CodecPackage.FormatMismatch e) { - // unexpected exception in codec.decode_value + // unexpected exception in codec.decode_value throw new MARSHAL("Unexpected exception: " + e); } } + /** Generate a string representation of the CompoundSecMech + * @param securityMech - the CompoundSecMech to create the string for + * @param buffer - the buffer to write to + */ + public static void toString(CompoundSecMech securityMech, StringBuffer buffer) + { + AS_ContextSec asMech = securityMech != null ? securityMech.as_context_mech : null; + SAS_ContextSec sasMech = securityMech != null ? securityMech.sas_context_mech : null; + if( securityMech != null ) + { + buffer.append("CompoundSecMech["); + buffer.append("target_requires: "); + buffer.append(securityMech.target_requires); + if( asMech != null ) + { + buffer.append("AS_ContextSec["); + + buffer.append("client_authentication_mech: "); + try + { + buffer.append(new String(asMech.client_authentication_mech, "UTF-8")); + } + catch(UnsupportedEncodingException e) + { + buffer.append(e.getMessage()); + } + buffer.append(", target_name: "); + try + { + buffer.append(new String(asMech.target_name, "UTF-8")); + } + catch(UnsupportedEncodingException e) + { + buffer.append(e.getMessage()); + } + buffer.append(", target_requires: "); + buffer.append(asMech.target_requires); + buffer.append(", target_supports: "); + buffer.append(asMech.target_supports); + buffer.append("]"); + } + if( sasMech != null ) + { + buffer.append("SAS_ContextSec["); + buffer.append("supported_identity_types: "); + buffer.append(sasMech.supported_identity_types); + buffer.append(", target_requires: "); + buffer.append(sasMech.target_requires); + buffer.append(", target_supports: "); + buffer.append(sasMech.target_supports); + buffer.append("]"); + } + buffer.append("]"); + } + } } |