Great.

Thanks for these.

I'd like to see it included in the next TC release

2008/11/14 Christophe Dupriez <[EMAIL PROTECTED]>:
> Hi again Tomcat Developpers!
>
> (Message re-re-re-sent because attached files did not went through the 
> MailList management program and then Outlook resent an old version of my 
> message): SORRY!
>
> The patch file is accessible:
> http://www.destin.be/tomcat/NtlmAuthentication.patch
>
> The new authenticator class is accessible:
> http://www.destin.be/tomcat/NtlmAuthenticator.java
>
> I wanted to:
> * centralize the parameterization of user authentication at the container 
> level;
> * have a simple NTLM authentication for intranet users;
> * be able to run Tomcat in a Microsoft Active Directory network where the 
> server is secured (absolutely no login allowed to regular users)
>
> There is a Microsoft "specification" (bug?) by which all LDAP binds are 
> evaluated on the Domain Server (like if the user was attempting to login on 
> the Domain Server).
> It would be better to have binds evaluated as if they were originating from 
> the LDAP client machine (the Tomcat Server).
>
> To circumvent this, I have been obliged to remove the binding (the password 
> checking) but to ensure that it is NTLM (and nothing else) which provides the 
> username.
> The users are therefore automatically logged with the username used to log on 
> their PC.
>
> The attached patch is for current Apache Tomcat sources (6.0.18).
>
> It adds:
> An NTLM Authenticator: nothing to configure except in the web.xml of each 
> application:
>   <login-config>
>       <auth-method>NTLM</auth-method>
>       <realm-name>ThisIsApassword</realm-name>
>   </login-config>
> The realm-name is the "password" which ensures that authentication is done by 
> NTLM and no other method.
> A very long password is strongly recommended.
> A modified JNDI Realm with new parameters:
> preAuthenticatedPassword="ThisIsApassword"
> This to suppress password checking if preAuthenticatedPassword is provided.
> userIdentification="userPrincipalName" provides a standardized username, 
> whatever the retrieved user name (case of complex userSearch patterns)
> userNamePrefix and userNameSuffix
> This to suppress a prefix and/or a suffix from username before returning it 
> to the application: good to suppress domain identification, etc.
> When you user complex userSearch pattern, this can be very useful. Example:
> userSearch="(|(sAMAccountName={0})([EMAIL PROTECTED])(userPrincipalName={0}))"
> userIdentification="userPrincipalName" userNamePrefix="domain\" 
> userNameSuffix="@domain.com"
>
> Hopes this can be useful to the community!
>
> Please do not hesitate to ask me what I should do to make this contribution 
> perennial.
>
> Wishing you a very nice weekend,
>
> Christophe Dupriez
> Centre Antipoisons - Antigifcentrum
> C/o Hôpital Central de la Base Reine Astrid
>   Rue Bruyn - 1120 Bruxelles - Belgique
> tel 32-(0)2.264.96.36 fax 32-(0)2.264.96.46

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to