1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.ldap.extras.controls.passwordExpired_impl;
21
22 import org.apache.directory.api.asn1.DecoderException;
23 import org.apache.directory.api.asn1.util.Asn1Buffer;
24 import org.apache.directory.api.i18n.I18n;
25 import org.apache.directory.api.ldap.codec.api.AbstractControlFactory;
26 import org.apache.directory.api.ldap.codec.api.ControlFactory;
27 import org.apache.directory.api.ldap.codec.api.LdapApiService;
28 import org.apache.directory.api.ldap.extras.controls.passwordExpired.PasswordExpiredResponse;
29 import org.apache.directory.api.ldap.extras.controls.passwordExpired.PasswordExpiredResponseImpl;
30 import org.apache.directory.api.ldap.model.message.Control;
31 import org.apache.directory.api.util.Strings;
32
33
34
35
36
37
38 public class PasswordExpiredResponseFactory extends AbstractControlFactory<PasswordExpiredResponse>
39 {
40
41
42
43
44
45 public PasswordExpiredResponseFactory( LdapApiService codec )
46 {
47 super( codec, PasswordExpiredResponse.OID );
48 }
49
50
51
52
53
54 @Override
55 public PasswordExpiredResponse newControl()
56 {
57 return new PasswordExpiredResponseImpl();
58 }
59
60
61
62
63
64 @Override
65 public void decodeValue( Control control, byte[] controlBytes ) throws DecoderException
66 {
67 try
68 {
69 if ( !Strings.utf8ToString( controlBytes ).equals( "0" ) )
70 {
71 throw new DecoderException( I18n.err( I18n.ERR_08110_BAD_PASSWORD_EXPIRED_VALUE, Strings.dumpBytes( controlBytes ) ) );
72 }
73 }
74 catch ( RuntimeException re )
75 {
76 throw new DecoderException( re.getMessage() );
77 }
78 }
79
80
81
82
83
84 @Override
85 public void encodeValue( Asn1Buffer buffer, Control control )
86 {
87
88 buffer.put( ( byte ) 0x30 );
89 }
90 }