+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SecurityTokenRequirement.cs : return false if property value is
+ null in the internal dictionary (unlike Dictionary<K,V>).
+
2007-11-27 Atsushi Enomoto <atsushi@ximian.com>
* SecurityTokenRequirement.cs : fill out parameter properly (gmcs
value = (TValue) tmp;
else
throw new ArgumentException (String.Format ("The value of property '{0}' is of type '{1}', while '{2}' is expected.", property, tmp.GetType (), typeof (TValue)));
- return true;
+ return value != null;
}
}
}
// FIXME: use proper max buffer
buf = source.CreateBufferedCopy (int.MaxValue);
+Console.WriteLine ("####### " + buf.CreateMessage ());
doc = new XmlDocument ();
doc.PreserveWhitespace = true;
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SecurityBindingElement.cs : implement ToString().
+
2010-07-15 Atsushi Enomoto <atsushi@ximian.com>
* MtomMessageEncodingBindingElement.cs, MtomMessageEncoder.cs :
using System.IdentityModel.Tokens;
using System.ServiceModel.Security.Tokens;
#endif
+using System.Text;
namespace System.ServiceModel.Channels
{
p.SetKeyDerivation (requireDerivedKeys);
}
- [MonoTODO]
public override string ToString ()
{
- return base.ToString ();
+ var sb = new StringBuilder ();
+ sb.Append (GetType ().FullName).Append (":\n");
+ foreach (var pi in GetType ().GetProperties ()) {
+ var simple = Type.GetTypeCode (pi.PropertyType) != TypeCode.Object;
+ var val = pi.GetValue (this, null);
+ sb.Append (pi.Name).Append (':');
+ if (val != null)
+ sb.AppendFormat ("{0}{1}{2}", simple ? " " : "\n", simple ? "" : " ", String.Join ("\n ", val.ToString ().Split ('\n')));
+ sb.Append ('\n');
+ }
+ sb.Length--; // chop trailing EOL.
+ return sb.ToString ();
}
#else
[MonoTODO]
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * SecurityTokenParameters.cs, SupportingTokenParameters.cs,
+ SslSecurityTokenParameters.cs, IssuedSecurityTokenParameters.cs,
+ SspiSecurityTokenParameters.cs,
+ SecureConversationSecurityTokenParameters.cs :
+ implement ToString().
+
2010-07-15 Atsushi Enomoto <atsushi@ximian.com>
* SslSecurityTokenProvider.cs : verify mismatch. We don't have
Collection<XmlElement> additional_reqs =
new Collection<XmlElement> ();
- [MonoTODO]
public override string ToString ()
{
return base.ToString ();
requirement.KeyType = SecurityKeyType.SymmetricKey;
}
- [MonoTODO]
public override string ToString ()
{
return base.ToString ();
using System.IdentityModel.Tokens;
using System.ServiceModel.Channels;
using System.ServiceModel.Security;
+using System.Text;
namespace System.ServiceModel.Security.Tokens
{
return CloneCore ();
}
- [MonoTODO]
public override string ToString ()
{
- return base.ToString ();
+ var sb = new StringBuilder ();
+ sb.Append (GetType ().FullName).Append (":\n");
+ foreach (var pi in GetType ().GetProperties ()) {
+ var simple = Type.GetTypeCode (pi.PropertyType) != TypeCode.Object;
+ var val = pi.GetValue (this, null);
+ sb.Append (pi.Name).Append (':');
+ if (val != null)
+ sb.AppendFormat ("{0}{1}{2}", simple ? " " : "\n", simple ? "" : " ", String.Join ("\n ", val.ToString ().Split ('\n')));
+ sb.Append ('\n');
+ }
+ sb.Length--; // chop trailing EOL.
+ return sb.ToString ();
}
protected abstract bool HasAsymmetricKey { get; }
set { cancel = value; }
}
- [MonoTODO]
public override string ToString ()
{
return base.ToString ();
requirement.KeyType = SecurityKeyType.SymmetricKey;
}
- [MonoTODO]
public override string ToString ()
{
return base.ToString ();
using System.ServiceModel.Channels;
using System.ServiceModel.Description;
using System.ServiceModel.Security;
+using System.Text;
using ParamList = System.Collections.ObjectModel.Collection<System.ServiceModel.Security.Tokens.SecurityTokenParameters>;
p.RequireDerivedKeys = requireDerivedKeys;
}
- [MonoTODO]
public override string ToString ()
{
- return base.ToString ();
+ var sb = new StringBuilder ();
+ AppendCollection (sb, Endorsing, "endorsing", "Endorsing");
+ AppendCollection (sb, Signed, "signed", "Signed");
+ AppendCollection (sb, SignedEncrypted, "signed encrypted", "SignedEncrypted");
+ AppendCollection (sb, SignedEndorsing, "signed endorsing", "SignedEndorsing");
+ sb.Length--; // chop trailing EOL.
+ return sb.ToString ();
+ }
+
+ void AppendCollection (StringBuilder sb, Collection<SecurityTokenParameters> col, string emptyLabel, string label)
+ {
+ if (col.Count == 0)
+ sb.AppendFormat ("No {0} tokens.\n", emptyLabel);
+ for (int i = 0; i < col.Count; i++)
+ sb.AppendFormat ("{0}[{1}]\n {2}\n", label, i, String.Join ("\n ", col [i].ToString ().Split ('\n')));
}
}
}
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ServiceCredentialsSecurityTokenManager.cs : implement some
+ requirement check for WS-SecureConversation.
+
2010-07-27 Atsushi Enomoto <atsushi@ximian.com>
* X509CertificateRecipientClientCredential.cs,
if (requirement.TokenType == SecurityTokenTypes.Rsa)
return new RsaSecurityTokenAuthenticator ();
if (requirement.TokenType == ServiceModelSecurityTokenTypes.SecureConversation) {
+ SecurityBindingElement binding;
+ if (!requirement.TryGetProperty<SecurityBindingElement> (ReqType.SecurityBindingElementProperty, out binding))
+ throw new ArgumentException ("SecurityBindingElement is required in the security token requirement");
+ SecureConversationSecurityTokenParameters issuedParams;
+ if (!requirement.TryGetProperty<SecureConversationSecurityTokenParameters> (ReqType.IssuedSecurityTokenParametersProperty, out issuedParams))
+ throw new ArgumentException ("IssuedSecurityTokenParameters are required in the security token requirement");
+ BindingContext issuerBC;
+ if (!requirement.TryGetProperty<BindingContext> (ReqType.IssuerBindingContextProperty, out issuerBC))
+ throw new ArgumentException ("IssuerBindingContext is required in the security token requirement");
+ SecurityTokenVersion secVer;
+ if (!requirement.TryGetProperty<SecurityTokenVersion> (ReqType.MessageSecurityVersionProperty, out secVer))
+ throw new ArgumentException ("MessageSecurityVersion property (of type SecurityTokenVersion) is required in the security token requirement");
+
// FIXME: get parameters from somewhere
SecurityContextSecurityTokenResolver resolver =
new SecurityContextSecurityTokenResolver (0x1000, true);
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ServiceCredentialsSecurityTokenManagerTest.cs : another WS-SC test.
+
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ServiceCredentialsSecurityTokenManagerTest.cs :
+ enable some WS-SC tests.
+
2010-03-24 Atsushi Enomoto <atsushi@ximian.com>
* TransportSecurityBindingElementTest.cs : new test.
def_c.CreateSecurityTokenProvider (r);
}
+ [Test]
+ [ExpectedException (typeof (NotSupportedException))]
+ [Category ("NotDotNet")] // it results in NRE inside InitializeSecurityTokenRequirement().
+ public void CreateProviderSecureConv2 ()
+ {
+ var sbe = (SymmetricSecurityBindingElement) SecurityBindingElement.CreateSecureConversationBindingElement (SecurityBindingElement.CreateUserNameForCertificateBindingElement ());
+ var p = new MySecureConversationSecurityTokenParameters ((SecureConversationSecurityTokenParameters) sbe.ProtectionTokenParameters);
+ var r = new RecipientServiceModelSecurityTokenRequirement ();
+ p.InitRequirement (r);
+ def_c.CreateSecurityTokenProvider (r);
+ }
+
[Test]
[ExpectedException (typeof (ArgumentException))]
- [Category ("NotWorking")]
public void CreateAuthenticatorSecureConvNoSecurityBindingElement ()
{
RecipientServiceModelSecurityTokenRequirement r =
[Test]
[ExpectedException (typeof (ArgumentException))]
- [Category ("NotWorking")]
public void CreateAuthenticatorSecureConvNoIssuedSecurityTokenParameters ()
{
RecipientServiceModelSecurityTokenRequirement r =
[Test]
[ExpectedException (typeof (ArgumentException))]
- [Category ("NotWorking")]
public void CreateAuthenticatorSecureConvNoIssuerBindingContext ()
{
RecipientServiceModelSecurityTokenRequirement r =
def_c.CreateSecurityTokenAuthenticator (r, out resolver);
}
- [Test]
- // The type of exception should not matter though.
- [ExpectedException (typeof (NotSupportedException))]
- [Category ("NotWorking")]
- public void CreateAuthenticatorSecureConvNullMessageSecurityVersion ()
- {
- RecipientServiceModelSecurityTokenRequirement r =
- CreateSecureConvRequirement ();
- r.MessageSecurityVersion = null;
- SecurityTokenResolver resolver;
- def_c.CreateSecurityTokenAuthenticator (r, out resolver);
- }
-
[Test]
[ExpectedException (typeof (ArgumentException))]
- [Category ("NotWorking")]
public void CreateAuthenticatorSecureConvNoMessageSecurityVersion ()
{
RecipientServiceModelSecurityTokenRequirement r =
+2010-07-28 Atsushi Enomoto <atsushi@ximian.com>
+
+ * ClientCredentialsSecurityTokenManagerTest.cs : add utility .ctor.
+
2010-06-21 Atsushi Enomoto <atsushi@ximian.com>
* EndpointAddressTest.cs : add more ReadFrom() tests.
{
}
+ public MySecureConversationSecurityTokenParameters (SecureConversationSecurityTokenParameters clone)
+ : base (clone)
+ {
+ }
+
public MySecureConversationSecurityTokenParameters (SecurityBindingElement element)
: base (element)
{