Author: atsushi
Date: 2007-03-01 05:08:20 -0500 (Thu, 01 Mar 2007)
New Revision: 73584

Modified:
   trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog
   
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/MessageSecurityBindingSupport.cs
   trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ChangeLog
   
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ServiceCredentialsSecurityTokenManager.cs
   trunk/olive/class/System.ServiceModel/System.ServiceModel/ChangeLog
   
trunk/olive/class/System.ServiceModel/System.ServiceModel/ClientCredentialsSecurityTokenManager.cs
Log:
2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * MessageSecurityBindingSupport.cs :
          Set proper MessageDirection to the requirement after creation.
          split CreateTokenAuthenticator() as MessageDirection is different.
          Removed extra creation of requirement.

        * ClientCredentialsSecurityTokenManager.cs :
          internalize IsIssuedSecurityTokenRequirement().
          Use SecurityTokenRequirement.ToString().

        * ServiceCredentialsSecurityTokenManager.cs :
          internalize IsIssuedSecurityTokenRequirement().
          Use SecurityTokenRequirement.ToString().



Modified: trunk/olive/class/System.ServiceModel/System.ServiceModel/ChangeLog
===================================================================
--- trunk/olive/class/System.ServiceModel/System.ServiceModel/ChangeLog 
2007-03-01 10:04:35 UTC (rev 73583)
+++ trunk/olive/class/System.ServiceModel/System.ServiceModel/ChangeLog 
2007-03-01 10:08:20 UTC (rev 73584)
@@ -1,3 +1,9 @@
+2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * ClientCredentialsSecurityTokenManager.cs :
+         internalize IsIssuedSecurityTokenRequirement().
+         Use SecurityTokenRequirement.ToString().
+
 2007-02-27  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * WSHttpBinding.cs : for UserName credentials, don't require

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel/ClientCredentialsSecurityTokenManager.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel/ClientCredentialsSecurityTokenManager.cs
  2007-03-01 10:04:35 UTC (rev 73583)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel/ClientCredentialsSecurityTokenManager.cs
  2007-03-01 10:08:20 UTC (rev 73584)
@@ -65,6 +65,7 @@
                        if (requirement == null)
                                throw new ArgumentNullException ("requirement");
                        if (requirement.TokenType == 
SecurityTokenTypes.UserName) {
+                               // unsupported
                        }
                        else if (requirement.TokenType == 
SecurityTokenTypes.Rsa)
                                return new RsaSecurityTokenAuthenticator ();
@@ -74,7 +75,7 @@
                        else
                                throw new NotImplementedException ();
 
-                       throw new NotSupportedException (String.Format ("Token 
type '{0}' is not supported to create SecurityTokenAuthenticator.", 
requirement.TokenType));
+                       throw new NotSupportedException (String.Format 
("Security token requirement '{0}' is not supported to create 
SecurityTokenAuthenticator.", requirement));
                }
 
 
@@ -330,7 +331,7 @@
                        return new WSSecurityTokenSerializer (version);
                }
 
-               protected bool IsIssuedSecurityTokenRequirement (
+               protected internal bool IsIssuedSecurityTokenRequirement (
                        SecurityTokenRequirement requirement)
                {
                        IssuedSecurityTokenParameters dummy;

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog    
    2007-03-01 10:04:35 UTC (rev 73583)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/ChangeLog    
    2007-03-01 10:08:20 UTC (rev 73584)
@@ -1,5 +1,12 @@
 2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * MessageSecurityBindingSupport.cs :
+         Set proper MessageDirection to the requirement after creation.
+         split CreateTokenAuthenticator() as MessageDirection is different.
+         Removed extra creation of requirement.
+
+2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * MessageSecurityBindingSupport.cs : token authenticator is not
          always created on channel-opening stage.
        * SecurityBindingElement.cs : use SslSecurityTokenParameters for

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/MessageSecurityBindingSupport.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/MessageSecurityBindingSupport.cs
 2007-03-01 10:04:35 UTC (rev 73583)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Channels/MessageSecurityBindingSupport.cs
 2007-03-01 10:08:20 UTC (rev 73584)
@@ -168,12 +168,7 @@
                        return manager.CreateSecurityTokenProvider 
(requirement);
                }
 
-               public SecurityTokenAuthenticator CreateTokenAuthenticator 
(SecurityTokenParameters p, out SecurityTokenResolver resolver)
-               {
-                       SecurityTokenRequirement r = CreateRequirement ();
-                       p.CallInitializeSecurityTokenRequirement (r);
-                       return manager.CreateSecurityTokenAuthenticator (r, out 
resolver);
-               }
+               public abstract SecurityTokenAuthenticator 
CreateTokenAuthenticator (SecurityTokenParameters p, out SecurityTokenResolver 
resolver);
 
                protected void PrepareAuthenticator ()
                {
@@ -187,6 +182,23 @@
                                authenticator = CreateTokenAuthenticator 
(RecipientParameters, out auth_token_resolver);
                }
 
+               protected void InitializeRequirement (SecurityTokenParameters 
p, SecurityTokenRequirement r)
+               {
+                       p.CallInitializeSecurityTokenRequirement (r);
+
+                       // r.Properties [ChannelParametersCollectionProperty] =
+                       // r.Properties [ReqType.EndpointFilterTableProperty] =
+                       // r.Properties 
[ReqType.HttpAuthenticationSchemeProperty] =
+                       // r.Properties [ReqType.IsOutOfBandTokenProperty] =
+                       // r.Properties [ReqType.IssuerAddressProperty] =
+                       // r.Properties [ReqType.MessageDirectionProperty] = 
+                       r.Properties [ReqType.MessageSecurityVersionProperty] = 
Element.MessageSecurityVersion.SecurityTokenVersion;
+                       r.Properties [ReqType.SecurityAlgorithmSuiteProperty] = 
Element.DefaultAlgorithmSuite;
+                       r.Properties [ReqType.SecurityBindingElementProperty] = 
Element;
+                       // r.Properties 
[ReqType.SupportingTokenAttachmentModeProperty] =
+                       // r.TransportScheme =
+               }
+
                public void Release ()
                {
                        ReleaseCore ();
@@ -245,7 +257,7 @@
                        requirement.Properties 
[ReqType.MessageSecurityVersionProperty] =
                                
Element.MessageSecurityVersion.SecurityTokenVersion;
 
-                       targetParams.CallInitializeSecurityTokenRequirement 
(requirement);
+                       InitializeRequirement (targetParams, requirement);
 
                        SecurityTokenProvider provider =
                                CreateTokenProvider (requirement);
@@ -287,9 +299,6 @@
                        this.factory = factory;
                        this.message_to = address;
 
-                       SecurityTokenRequirement r = CreateRequirement ();
-                       
RecipientParameters.CallInitializeSecurityTokenRequirement (r);
-
                        PrepareAuthenticator ();
 
                        // This check is almost extra, though it is needed
@@ -302,7 +311,8 @@
                        get {
                                if (encryption_token == null) {
                                        SecurityTokenRequirement r = 
CreateRequirement ();
-                                       
RecipientParameters.CallInitializeSecurityTokenRequirement (r);
+                                       r.Properties 
[ReqType.MessageDirectionProperty] = MessageDirection.Input;
+                                       InitializeRequirement 
(RecipientParameters, r);
                                        encryption_token = GetToken (r, 
RecipientParameters, SecurityKeyUsage.Exchange);
                                }
                                return encryption_token;
@@ -313,7 +323,8 @@
                        get {
                                if (signing_token == null) {
                                        SecurityTokenRequirement r = 
CreateRequirement ();
-                               
InitiatorParameters.CallInitializeSecurityTokenRequirement (r);
+                                       r.Properties 
[ReqType.MessageDirectionProperty] = MessageDirection.Input;
+                                       InitializeRequirement 
(InitiatorParameters, r);
                                        signing_token = GetToken (r, 
InitiatorParameters, SecurityKeyUsage.Signature);
                                }
                                return signing_token;
@@ -341,8 +352,17 @@
                        SecurityTokenRequirement r = new 
InitiatorServiceModelSecurityTokenRequirement ();
 //                     r.Properties [ReqType.IssuerAddressProperty] = 
message_to;
                        r.Properties [ReqType.TargetAddressProperty] = 
message_to;
+                       // FIXME: set Via
                        return r;
                }
+
+               public override SecurityTokenAuthenticator 
CreateTokenAuthenticator (SecurityTokenParameters p, out SecurityTokenResolver 
resolver)
+               {
+                       SecurityTokenRequirement r = CreateRequirement ();
+                       r.Properties [ReqType.MessageDirectionProperty] = 
MessageDirection.Output;
+                       InitializeRequirement (p, r);
+                       return 
SecurityTokenManager.CreateSecurityTokenAuthenticator (r, out resolver);
+               }
        }
 
        class RecipientMessageSecurityBindingSupport : 
MessageSecurityBindingSupport
@@ -367,9 +387,6 @@
                {
                        this.listener = listener;
 
-                       SecurityTokenRequirement r = CreateRequirement ();
-                       
RecipientParameters.CallInitializeSecurityTokenRequirement (r);
-
                        PrepareAuthenticator ();
 
                        // This check is almost extra, though it is needed
@@ -378,6 +395,11 @@
                        // Not sure if it is limited to this condition, but
                        // Ssl parameters do not support token provider and
                        // still do not fail. X509 parameters do fail.
+                       //
+                       // FIXME: as AsymmetricSecurityBindingElementTest
+                       // .ServiceRecipientHasNoKeys() implies, it should be
+                       // the recipient's parameters that is used. However
+                       // such changes will break some of existing tests...
                        if (InitiatorParameters.InternalHasAsymmetricKey &&
                            EncryptionToken == null)
                                throw new Exception ("INTERNAL ERROR");
@@ -387,6 +409,7 @@
                        get {
                                if (encryption_token == null) {
                                        SecurityTokenRequirement r = 
CreateRequirement ();
+                                       r.Properties 
[ReqType.MessageDirectionProperty] = MessageDirection.Output;
                                        encryption_token = GetToken (r, 
InitiatorParameters, SecurityKeyUsage.Exchange);
                                }
                                return encryption_token;
@@ -397,7 +420,8 @@
                        get {
                                if (signing_token == null) {
                                        SecurityTokenRequirement r = 
CreateRequirement ();
-                               
RecipientParameters.CallInitializeSecurityTokenRequirement (r);
+                                       r.Properties 
[ReqType.MessageDirectionProperty] = MessageDirection.Input;
+                                       InitializeRequirement 
(RecipientParameters, r);
                                        signing_token = GetToken (r, 
RecipientParameters, SecurityKeyUsage.Signature);
                                }
                                return signing_token;
@@ -426,6 +450,14 @@
                        requirement.Properties [ReqType.ListenUriProperty] = 
listener.Uri;
                        return requirement;
                }
+
+               public override SecurityTokenAuthenticator 
CreateTokenAuthenticator (SecurityTokenParameters p, out SecurityTokenResolver 
resolver)
+               {
+                       SecurityTokenRequirement r = CreateRequirement ();
+                       r.Properties [ReqType.MessageDirectionProperty] = 
MessageDirection.Input;
+                       InitializeRequirement (p, r);
+                       return 
SecurityTokenManager.CreateSecurityTokenAuthenticator (r, out resolver);
+               }
        }
 
        internal abstract class SecurityBindingElementSupport

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ChangeLog    
    2007-03-01 10:04:35 UTC (rev 73583)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ChangeLog    
    2007-03-01 10:08:20 UTC (rev 73584)
@@ -1,6 +1,12 @@
 2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * ServiceCredentialsSecurityTokenManager.cs :
+         internalize IsIssuedSecurityTokenRequirement().
+         Use SecurityTokenRequirement.ToString().
+
+2007-03-01  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * ServiceCredentialsSecurityTokenManager.cs :
          Return ssl token authenticator (just almost stub now).
          Ssl does not support token provider, so explicitly throw an error.
 

Modified: 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ServiceCredentialsSecurityTokenManager.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ServiceCredentialsSecurityTokenManager.cs
        2007-03-01 10:04:35 UTC (rev 73583)
+++ 
trunk/olive/class/System.ServiceModel/System.ServiceModel.Security/ServiceCredentialsSecurityTokenManager.cs
        2007-03-01 10:08:20 UTC (rev 73584)
@@ -148,7 +148,7 @@
                                // FIXME: implement
                                throw new NotImplementedException ();
                        }
-                       throw new NotSupportedException (String.Format ("Token 
type '{0}' is not supported", requirement.TokenType));
+                       throw new NotSupportedException (String.Format 
("Securirty token requirement '{0}' is not supported", requirement));
                }
 
                X509SecurityTokenProvider CreateX509SecurityTokenProvider 
(SecurityTokenRequirement requirement)
@@ -268,7 +268,7 @@
                        return new WSSecurityTokenSerializer (ver, bsp);
                }
 
-               protected bool IsIssuedSecurityTokenRequirement (
+               protected internal bool IsIssuedSecurityTokenRequirement (
                        SecurityTokenRequirement requirement)
                {
                        IssuedSecurityTokenParameters dummy;

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to