2010-07-27 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Tue, 27 Jul 2010 11:09:30 +0000 (20:09 +0900)
committerAtsushi Eno <atsushieno@veritas-vos-liberabit.com>
Tue, 27 Jul 2010 11:09:30 +0000 (20:09 +0900)
* FederatedMessageSecurityOverHttp.cs, OptionalReliableSession.cs,
  ReliableSession.cs, WSFederationHttpBinding.cs:
  filled couple of missing members.

* ClaimTypeElement.cs
  ClaimTypeElementCollection.cs
  FederatedMessageSecurityOverHttpElement.cs
  StandardBindingOptionalReliableSessionElement.cs
  StandardBindingReliableSessionElement.cs
  WSFederationHttpBindingElement.cs
  WSFederationHttpSecurityElement.cs
  WSHttpBindingBaseElement.cs : implemented ApplyConfiguration and
  add/fix descendants' members.

14 files changed:
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/ClaimTypeElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/ClaimTypeElementCollection.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/FederatedMessageSecurityOverHttpElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingOptionalReliableSessionElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingReliableSessionElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpBindingElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/WSFederationHttpSecurityElement.cs
mcs/class/System.ServiceModel/System.ServiceModel.Configuration/WSHttpBindingBaseElement.cs
mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog
mcs/class/System.ServiceModel/System.ServiceModel/FederatedMessageSecurityOverHttp.cs
mcs/class/System.ServiceModel/System.ServiceModel/OptionalReliableSession.cs
mcs/class/System.ServiceModel/System.ServiceModel/ReliableSession.cs
mcs/class/System.ServiceModel/System.ServiceModel/WSFederationHttpBinding.cs

index 8fa11863ac2cfd5c74cbbd271b01fff142e81064..6b50418b8d97ccdb2879fbfc36a1a741a801636b 100755 (executable)
@@ -1,3 +1,15 @@
+2010-07-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ClaimTypeElement.cs
+         ClaimTypeElementCollection.cs
+         FederatedMessageSecurityOverHttpElement.cs
+         StandardBindingOptionalReliableSessionElement.cs
+         StandardBindingReliableSessionElement.cs
+         WSFederationHttpBindingElement.cs
+         WSFederationHttpSecurityElement.cs
+         WSHttpBindingBaseElement.cs : implemented ApplyConfiguration and
+         add/fix descendants' members.
+
 2010-07-27  Atsushi Enomoto  <atsushi@ximian.com>
 
        * FederatedMessageSecurityOverHttpElement.cs : use correct converter.
index 3222dfb38e8ad6d9df5be14d659ff60e90907e76..a71fe2883b432b4026c4dd1e8ce7072dc977b595 100644 (file)
@@ -48,13 +48,13 @@ using System.ServiceModel.Dispatcher;
 using System.ServiceModel.MsmqIntegration;
 using System.ServiceModel.PeerResolvers;
 using System.ServiceModel.Security;
+using System.ServiceModel.Security.Tokens;
 using System.Runtime.Serialization;
 using System.Text;
 using System.Xml;
 
 namespace System.ServiceModel.Configuration
 {
-       [MonoTODO]
        public sealed partial class ClaimTypeElement
                 : ConfigurationElement
        {
@@ -110,7 +110,10 @@ namespace System.ServiceModel.Configuration
                        get { return properties; }
                }
 
-
+               internal ClaimTypeRequirement Create ()
+               {
+                       return new ClaimTypeRequirement (ClaimType, IsOptional);
+               }
        }
 
 }
index b50d6728271b0f04f8dc82ae5c0a3b74a8a6a9df..5d7053e8c5e3365dfaff6dfac1a9c9259e099f63 100644 (file)
@@ -59,7 +59,6 @@ namespace System.ServiceModel.Configuration
                 RemoveItemName = "remove",
                 ClearItemsName = "clear",
                 CollectionType = ConfigurationElementCollectionType.AddRemoveClearMap)]
-       [MonoTODO]
        public sealed partial class ClaimTypeElementCollection
                 : ServiceModelConfigurationElementCollection<ClaimTypeElement>,  ICollection,  IEnumerable
        {
@@ -77,8 +76,6 @@ namespace System.ServiceModel.Configuration
 
 
                // Properties
-
-
        }
 
 }
index ddb6e17b873483bb394d2702a83517aad4e607c7..9a689194d18e5a3285c89964a7119c56811d88f2 100644 (file)
@@ -62,6 +62,7 @@ namespace System.ServiceModel.Configuration
                static ConfigurationPropertyCollection properties;
                static ConfigurationProperty algorithm_suite;
                static ConfigurationProperty claim_type_requirements;
+               static ConfigurationProperty establish_security_context;
                static ConfigurationProperty issued_key_type;
                static ConfigurationProperty issued_token_type;
                static ConfigurationProperty issuer;
@@ -80,6 +81,10 @@ namespace System.ServiceModel.Configuration
                                typeof (ClaimTypeElementCollection), null, null/* FIXME: get converter for ClaimTypeElementCollection*/, null,
                                ConfigurationPropertyOptions.None);
 
+                       establish_security_context = new ConfigurationProperty ("establishSecurityContext",
+                               typeof (bool), "true", new BooleanConverter (), null,
+                               ConfigurationPropertyOptions.None);
+
                        issued_key_type = new ConfigurationProperty ("issuedKeyType",
                                typeof (SecurityKeyType), "SymmetricKey", null/* FIXME: get converter for SecurityKeyType*/, null,
                                ConfigurationPropertyOptions.None);
@@ -106,6 +111,7 @@ namespace System.ServiceModel.Configuration
 
                        properties.Add (algorithm_suite);
                        properties.Add (claim_type_requirements);
+                       properties.Add (establish_security_context);
                        properties.Add (issued_key_type);
                        properties.Add (issued_token_type);
                        properties.Add (issuer);
@@ -136,6 +142,14 @@ namespace System.ServiceModel.Configuration
                        get { return (ClaimTypeElementCollection) base [claim_type_requirements]; }
                }
 
+               [ConfigurationProperty ("establishSecurityContext",
+                        Options = ConfigurationPropertyOptions.None,
+                       DefaultValue = true)]
+               public bool EstablishSecurityContext {
+                       get { return (bool) base [establish_security_context]; }
+                       set { base [establish_security_context] = value; }
+               }
+
                [ConfigurationProperty ("issuedKeyType",
                         Options = ConfigurationPropertyOptions.None,
                         DefaultValue = "SymmetricKey")]
@@ -185,7 +199,25 @@ namespace System.ServiceModel.Configuration
                        get { return (XmlElementElementCollection) base [token_request_parameters]; }
                }
 
-
+               // Methods
+               internal void ApplyConfiguration (FederatedMessageSecurityOverHttp s)
+               {
+                       s.AlgorithmSuite = AlgorithmSuite;
+                       foreach (ClaimTypeElement cte in ClaimTypeRequirements)
+                               s.ClaimTypeRequirements.Add (cte.Create ());
+                       s.EstablishSecurityContext = EstablishSecurityContext;
+                       s.IssuedKeyType = IssuedKeyType;
+                       s.IssuedTokenType = IssuedTokenType;
+                       if (Issuer.Address != null)
+                               s.IssuerAddress = new EndpointAddress (Issuer.Address, Issuer.Identity.Create (), Issuer.Headers.Headers);
+                       if (!String.IsNullOrEmpty (Issuer.Binding))
+                               s.IssuerBinding = ConfigUtil.CreateBinding (Issuer.Binding, Issuer.BindingConfiguration);
+                       if (IssuerMetadata.Address != null)
+                               s.IssuerMetadataAddress = new EndpointAddress (IssuerMetadata.Address, IssuerMetadata.Identity.Create (), IssuerMetadata.Headers.Headers);
+                       s.NegotiateServiceCredential = NegotiateServiceCredential;
+                       foreach (XmlElementElement xee in TokenRequestParameters)
+                               s.TokenRequestParameters.Add (xee.XmlElement);
+               }
        }
 
 }
index e87e659a0f37e11f536779b72e1d6d536ecdee77..f992325b7c62a47345e0c0edefc785d6e82eacc6 100644 (file)
@@ -54,7 +54,6 @@ using System.Xml;
 
 namespace System.ServiceModel.Configuration
 {
-       [MonoTODO]
        public sealed partial class StandardBindingOptionalReliableSessionElement
                 : StandardBindingReliableSessionElement
        {
@@ -91,7 +90,13 @@ namespace System.ServiceModel.Configuration
                        get { return properties; }
                }
 
+               // Methods
 
+               internal void ApplyConfiguration (OptionalReliableSession s)
+               {
+                       base.ApplyConfiguration (s);
+                       s.Enabled = this.Enabled;
+               }
        }
 
 }
index f6e42409f2947f1af3ab8512bb0437b21352a066..e2cb0bb901e090608f2c9741889e0bd5efc334fb 100644 (file)
@@ -113,7 +113,13 @@ namespace System.ServiceModel.Configuration
                        get { return properties; }
                }
 
+               // Methods
 
+               internal void ApplyConfiguration (ReliableSession s)
+               {
+                       s.InactivityTimeout = InactivityTimeout;
+                       s.Ordered = Ordered;
+               }
        }
 
 }
index 9eec9244ccf397641ab87bdb2d701e605b77689c..9092e0dc66e158e6942cd8e98ed9c713c16ad812 100644 (file)
@@ -137,10 +137,13 @@ namespace System.ServiceModel.Configuration
                        get { return (WSFederationHttpSecurityElement) base [security]; }
                }
 
-
-
-               protected override void OnApplyConfiguration (Binding binding) {
-                       throw new NotImplementedException ();
+               protected override void OnApplyConfiguration (Binding binding)
+               {
+                       base.OnApplyConfiguration (binding);
+                       var b = (WSFederationHttpBinding) binding;
+                       b.PrivacyNoticeAt = PrivacyNoticeAt;
+                       b.PrivacyNoticeVersion = PrivacyNoticeVersion;
+                       Security.ApplyConfiguration (b.Security);
                }
        }
 
index d1991177f93a632af65d5f7159aba7fdce5c1598..1b360cdcd4ff4c2df5783dac99efe4d997891cce 100644 (file)
@@ -54,7 +54,6 @@ using System.Xml;
 
 namespace System.ServiceModel.Configuration
 {
-       [MonoTODO]
        public sealed partial class WSFederationHttpSecurityElement
                 : ConfigurationElement
        {
@@ -103,7 +102,11 @@ namespace System.ServiceModel.Configuration
                        get { return properties; }
                }
 
-
+               internal void ApplyConfiguration (WSFederationHttpSecurity security)
+               {
+                       security.Mode = Mode;
+                       Message.ApplyConfiguration (security.Message);
+               }
        }
 
 }
index 27f51e701debd24eb0301680da73277dbe31d2ef..e46d55ec550607f3daa63da013d6d9faf91a884e 100644 (file)
@@ -179,7 +179,21 @@ namespace System.ServiceModel.Configuration
                        set { this ["useDefaultWebProxy"] = value; }
                }
 
-
+               protected override void OnApplyConfiguration (Binding binding)
+               {
+                       var b = (WSHttpBindingBase) binding;
+                       b.BypassProxyOnLocal = BypassProxyOnLocal;
+                       b.HostNameComparisonMode = HostNameComparisonMode;
+                       b.MaxBufferPoolSize = MaxBufferPoolSize;
+                       b.MaxReceivedMessageSize = MaxReceivedMessageSize;
+                       b.MessageEncoding = MessageEncoding;
+                       b.ProxyAddress = ProxyAddress;
+                       b.ReaderQuotas = ReaderQuotas.Create ();
+                       ReliableSession.ApplyConfiguration (b.ReliableSession);
+                       b.TextEncoding = TextEncoding;
+                       b.TransactionFlow = TransactionFlow;
+                       b.UseDefaultWebProxy = UseDefaultWebProxy;
+               }
        }
 
 }
index e5a7dd5c44cd31b7253c22a8fae93b30c8cb8cfe..07faf22f0a5141f8146475fa3ae46a825d9bbec6 100755 (executable)
@@ -1,3 +1,9 @@
+2010-07-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * FederatedMessageSecurityOverHttp.cs, OptionalReliableSession.cs,
+         ReliableSession.cs, WSFederationHttpBinding.cs:
+         filled couple of missing members.
+
 2010-07-08  Atsushi Enomoto  <atsushi@ximian.com>
 
        * ServiceRuntimeChannel.cs, NetNamedPipeBinding.cs,
index b32db8c928b89642f3b144d74812bc53baaba1b2..f3dcf873040011f3fa7b61aabdecc243cee89a0e 100644 (file)
@@ -46,7 +46,7 @@ namespace System.ServiceModel
                string issued_token_type;
                EndpointAddress issuer_address, metadata_address;
                Binding issuer_binding;
-               bool negotiate = true;
+               bool establish_sec_ctx = true, negotiate = true;
                Collection<ClaimTypeRequirement> claim_type_reqs =
                        new Collection<ClaimTypeRequirement> ();
                Collection<XmlElement> request_params = new Collection<XmlElement> ();
@@ -60,6 +60,11 @@ namespace System.ServiceModel
                        set { algorithm = value; }
                }
 
+               public bool EstablishSecurityContext {
+                       get { return establish_sec_ctx; }
+                       set { establish_sec_ctx = value; }
+               }
+
                public SecurityKeyType IssuedKeyType {
                        get { return issued_key_type; }
                        set { issued_key_type = value; }
index 1f5b9659c56c28e413b1451036d4e544a3df5965..3d8ebe30b81b0f66ef5deaeea4a7bf83bd95ea8d 100644 (file)
@@ -38,8 +38,15 @@ namespace System.ServiceModel
                bool enabled;
                ReliableSessionBindingElement binding;
 
+               public OptionalReliableSession ()
+               {
+               }
+
                public OptionalReliableSession (ReliableSessionBindingElement binding)
+                       : base (binding)
                {
+                       if (binding == null)
+                               throw new ArgumentNullException ("binding");
                }
 
                public bool Enabled {
index 441f2e0d92dbccab458184ce2157b59af21d8d94..5a5a3509e68fc8da5d2ba671c858658bfa4a41a8 100644 (file)
@@ -35,19 +35,20 @@ namespace System.ServiceModel
 {
        public class ReliableSession
        {
-               bool ordered;
-               TimeSpan inactivity_timeout;
-
                public ReliableSession ()
                {
                }
 
-               public TimeSpan InactivityTimeout {
-                       get { return inactivity_timeout; }
+               public ReliableSession (ReliableSessionBindingElement binding)
+               {
+                       if (binding == null)
+                               throw new ArgumentNullException ("binding");
+                       InactivityTimeout = binding.InactivityTimeout;
+                       Ordered = binding.Ordered;
                }
 
-               public bool Ordered {
-                       get { return ordered; }
-               }
+               public TimeSpan InactivityTimeout { get; set; }
+
+               public bool Ordered { get; set; }
        }
 }
index 01d87c5921f5ebfcdca47efd05c16afffc8724f4..cfc054ea7ae3289d10cfbf89e0c66c78760389e4 100644 (file)
@@ -38,6 +38,8 @@ namespace System.ServiceModel
        public class WSFederationHttpBinding : WSHttpBindingBase
        {
                WSFederationHttpSecurity security;
+               Uri privacy_notice_at;
+               int privacy_notice_ver;
                bool allow_cookies;
 
                public WSFederationHttpBinding ()
@@ -70,6 +72,18 @@ namespace System.ServiceModel
                        set { allow_cookies = value; }
                }
 
+               [MonoTODO]
+               public Uri PrivacyNoticeAt {
+                       get { return privacy_notice_at; }
+                       set { privacy_notice_at = value; }
+               }
+
+               [MonoTODO]
+               public int PrivacyNoticeVersion {
+                       get { return privacy_notice_ver; }
+                       set { privacy_notice_ver = value; }
+               }
+
                [MonoTODO]
                public WSFederationHttpSecurity Security {
                        get { return security; }