Applied patch for DIRKRB-595
git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/trunk@1752418 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/principalName/actions/StoreNameString.java b/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/principalName/actions/StoreNameString.java
index cd1a0a9..c14c197 100644
--- a/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/principalName/actions/StoreNameString.java
+++ b/kerberos-codec/src/main/java/org/apache/directory/shared/kerberos/codec/principalName/actions/StoreNameString.java
@@ -46,6 +46,18 @@
/** Speedup for logs */
private static final boolean IS_DEBUG = LOG.isDebugEnabled();
+ /** A flag used to allow UTF-8 chars in the name. THanks Microsoft for, once again, blowing a specification */
+ private static boolean ALLOW_UTF8_NAMES = false;
+
+ static
+ {
+ String allowUTF8Names = System.getProperty( "sun.security.krb5.msinterop.kstring" );
+
+ if ( "true".equalsIgnoreCase( Strings.trim( allowUTF8Names ) ) )
+ {
+ ALLOW_UTF8_NAMES = true;
+ }
+ }
/**
* Instantiates a new PrincipalNameInit action.
@@ -78,7 +90,7 @@
BerValue value = tlv.getValue();
// The PrincipalName must be pure ASCII witout any control character
- if ( KerberosUtils.isKerberosString( value.getData() ) )
+ if ( ALLOW_UTF8_NAMES || KerberosUtils.isKerberosString( value.getData() ) )
{
String nameString = Strings.utf8ToString( value.getData() );