[ 
https://issues.apache.org/jira/browse/DIRAPI-361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17420969#comment-17420969
 ] 

Gunics Balázs commented on DIRAPI-361:
--------------------------------------

Hello,

Sorry for the slow response, we had to wait for the password to expire.

 

While I don't know what's the actual server but my above code returned us the 
following information:
{code:java}
Control key: 2.16.840.1.113730.3.4.5
Control object: OpaqueControl Control
Type OID : '2.16.840.1.113730.3.4.5'
Criticality : 'false'
'
PasswordPolicyResponse is: null
{code}
I tried to search for: 2.16.840.1.113730.3.4.5 

But I got no hits in the source code. The Password policy OID in your 
implementation is:
[https://github.com/apache/directory-ldap-api/blob/4d3633225c18fe7349d346ea7b54d13337050f50/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/controls/ppolicy/PasswordPolicyResponse.java#L54]
 
"1.3.6.1.4.1.42.2.27.8.5.1"

Any extra information I could harvest for you?

 

[https://ldap.com/ldap-oid-reference-guide/] 

According to these sources that OID should also belong to:
|2.16.840.1.113730.3.4.5|Password Expiring Response Contro|

[https://docs.ldap.com/specs/draft-vchu-ldap-pwd-policy-00.txt] 

 

5. Password Expiration and Expiration Warning

New attributes, passwordExp, passwordMaxAge, and passwordWarning are
defined to specify whether the password will expire, when the password
expires and when a warning message will be sent to the client respec-
tively. The actual expiration time for a password will be stored in a
new attribute, passwordExpirationTime attribute in the user entry.

After bind operation succeed with authentication, the server should
check for password expiration. If the password expiration policy is on
and the account's password is expired, the server should send bin-
dResponse with the resultCode: LDAP_INVALID_CREDENTIALS along with an
error message to inform the client that the password has expired. If
the password is going to expire sooner than the password warning dura-
tion, the server should send bindResponse with the resultCode:
LDAP_SUCCESS, and should include the password expiring control in the
controls field of the bindResponse message:

controlType: 2.16.840.1.113730.3.4.5,

controlValue: an octet string to indicate the time in seconds until
 the password expires.

criticality: false


The server should send at least one warning message to the client before
expiring the client's password.

> LDAP Protocol error if password is expiring
> -------------------------------------------
>
>                 Key: DIRAPI-361
>                 URL: https://issues.apache.org/jira/browse/DIRAPI-361
>             Project: Directory Client API
>          Issue Type: Bug
>    Affects Versions: 2.0.1
>         Environment: Java 8
>            Reporter: Marco Cuccato
>            Priority: Critical
>
> An LdapOperationException is raised at bind() if the user has the password 
> expiring (but not expired yet).
> Exception:
> MessageType : BIND_RESPONSE
> Message ID : -1
>  BindResponse
>  Ldap Result
>  Result code : (PROTOCOL_ERROR) protocolError
>  Matched Dn : 'null'
>  Diagnostic message : 'PROTOCOL_ERROR: The server will disconnect!'
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@directory.apache.org
For additional commands, e-mail: dev-h...@directory.apache.org

Reply via email to