You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by lu...@apache.org on 2014/01/29 00:45:13 UTC
svn commit: r1562313 - in /directory/shared/trunk:
asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java
ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java
Author: lucastheisen
Date: Tue Jan 28 23:45:12 2014
New Revision: 1562313
URL: http://svn.apache.org/r1562313
Log:
DIRSERVER-1950: Unsafe cast to int in getPwdTimeBeforeExpiry calculation of AuthenticationInterceptor
Modified:
directory/shared/trunk/asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java
directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java
Modified: directory/shared/trunk/asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java?rev=1562313&r1=1562312&r2=1562313&view=diff
==============================================================================
--- directory/shared/trunk/asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java (original)
+++ directory/shared/trunk/asn1/ber/src/main/java/org/apache/directory/api/asn1/ber/tlv/TLV.java Tue Jan 28 23:45:12 2014
@@ -222,6 +222,7 @@ public class TLV
*
* @param length The length to store in a byte array
* @return The number of bytes necessary to store the length.
+ * @see <a href="http://en.wikipedia.org/wiki/X.690#Length_Octets">X.690</a>
*/
public static int getNbBytes( int length )
{
Modified: directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java?rev=1562313&r1=1562312&r2=1562313&view=diff
==============================================================================
--- directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java (original)
+++ directory/shared/trunk/ldap/extras/codec/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy_impl/PasswordPolicyDecorator.java Tue Jan 28 23:45:12 2014
@@ -27,6 +27,7 @@ import org.apache.directory.api.asn1.Dec
import org.apache.directory.api.asn1.EncoderException;
import org.apache.directory.api.asn1.ber.Asn1Decoder;
import org.apache.directory.api.asn1.ber.tlv.BerValue;
+import org.apache.directory.api.asn1.ber.tlv.TLV;
import org.apache.directory.api.asn1.ber.tlv.UniversalTag;
import org.apache.directory.api.i18n.I18n;
import org.apache.directory.api.ldap.codec.api.ControlDecorator;
@@ -49,8 +50,8 @@ public class PasswordPolicyDecorator ext
// Storage for computed lengths
private int ppolicySeqLength = 0;
private int warningLength = 0;
- private int timeBeforeExpirationTagLength;
- private int graceAuthNsRemainingTagLength;
+ private int timeBeforeExpirationValueLength;
+ private int graceAuthNsRemainingValueLength;
public PasswordPolicyDecorator( LdapApiService codec )
@@ -98,8 +99,8 @@ public class PasswordPolicyDecorator ext
valueLength = 0;
ppolicySeqLength = 0;
warningLength = 0;
- timeBeforeExpirationTagLength = 0;
- graceAuthNsRemainingTagLength = 0;
+ timeBeforeExpirationValueLength = 0;
+ graceAuthNsRemainingValueLength = 0;
if ( !hasResponse() )
{
@@ -108,18 +109,18 @@ public class PasswordPolicyDecorator ext
if ( getResponse().getTimeBeforeExpiration() >= 0 )
{
- timeBeforeExpirationTagLength = BerValue.getNbBytes( getResponse().getTimeBeforeExpiration() );
- warningLength = 1 + BerValue.getNbBytes( timeBeforeExpirationTagLength ) + timeBeforeExpirationTagLength;
+ timeBeforeExpirationValueLength = BerValue.getNbBytes( getResponse().getTimeBeforeExpiration() );
+ warningLength = 1 + TLV.getNbBytes( timeBeforeExpirationValueLength ) + timeBeforeExpirationValueLength;
}
else if ( getResponse().getGraceAuthNRemaining() >= 0 )
{
- graceAuthNsRemainingTagLength = BerValue.getNbBytes( getResponse().getGraceAuthNRemaining() );
- warningLength = 1 + BerValue.getNbBytes( graceAuthNsRemainingTagLength ) + graceAuthNsRemainingTagLength;
+ graceAuthNsRemainingValueLength = BerValue.getNbBytes( getResponse().getGraceAuthNRemaining() );
+ warningLength = 1 + TLV.getNbBytes( graceAuthNsRemainingValueLength ) + graceAuthNsRemainingValueLength;
}
if ( warningLength != 0 )
{
- ppolicySeqLength = 1 + BerValue.getNbBytes( warningLength ) + warningLength;
+ ppolicySeqLength = 1 + TLV.getNbBytes( warningLength ) + warningLength;
}
if ( getResponse().getPasswordPolicyError() != null )
@@ -129,7 +130,7 @@ public class PasswordPolicyDecorator ext
if ( ppolicySeqLength > 0 )
{
- valueLength = 1 + BerValue.getNbBytes( ppolicySeqLength ) + ppolicySeqLength;
+ valueLength = 1 + TLV.getNbBytes( ppolicySeqLength ) + ppolicySeqLength;
}
return valueLength;
@@ -158,24 +159,24 @@ public class PasswordPolicyDecorator ext
{
// Encode the Sequence tag
buffer.put( UniversalTag.SEQUENCE.getValue() );
- buffer.put( BerValue.getBytes( ppolicySeqLength ) );
+ buffer.put( TLV.getBytes( ppolicySeqLength ) );
if ( warningLength > 0 )
{
// Encode the Warning tag
buffer.put( ( byte ) PasswordPolicyTags.PPOLICY_WARNING_TAG.getValue() );
- buffer.put( BerValue.getBytes( warningLength ) );
+ buffer.put( TLV.getBytes( warningLength ) );
if ( getResponse().getTimeBeforeExpiration() >= 0 )
{
buffer.put( ( byte ) PasswordPolicyTags.TIME_BEFORE_EXPIRATION_TAG.getValue() );
- buffer.put( BerValue.getBytes( timeBeforeExpirationTagLength ) );
+ buffer.put( TLV.getBytes( timeBeforeExpirationValueLength ) );
buffer.put( BerValue.getBytes( getResponse().getTimeBeforeExpiration() ) );
}
else if ( getResponse().getGraceAuthNRemaining() >= 0 )
{
buffer.put( ( byte ) PasswordPolicyTags.GRACE_AUTHNS_REMAINING_TAG.getValue() );
- buffer.put( BerValue.getBytes( graceAuthNsRemainingTagLength ) );
+ buffer.put( TLV.getBytes( graceAuthNsRemainingValueLength ) );
buffer.put( BerValue.getBytes( getResponse().getGraceAuthNRemaining() ) );
}
}