== link:index.html[Index] -> link:modules.html[Modules] Modules: Validators ------------------- Validator modules are used to implement an authentication mechanism. Those can be selected from the `Security` section of each rule you have in your `virtual servers`. Note this is not the `Security` section of your virtual domains. It is the `Security` tab within each of the rules in your `Virtual server`. Those are accessible from the `Behavior` section of every configured virtual server. Depending on the complexity of the mechanism you will have to provide more or less information. You will always have to provide a *Realm*, which is a name to associate with the authenticated resource. You will also have permanently the option to provide a list of *allowed users*, regardless of the validator chosen. It is important to take into consideration that there are two different authentication mechanisms: * Basic * Digest Some can only handle one of those mechanisms because of technical limitations. In case the module supports both of them, the interface allows to choose whether one or both are to be used. .Interface sample for simple validator image::media/images/admin_validators_pam.png[Validator PAM] Refer to the link:cookbook_authentication.html[Authentication] recipe in the link:cookbook.html[Cookbook] for more detailed examples. This is the list of validator modules provided by Cherokee: * link:modules_validators_htdigest.html[htdigest] * link:modules_validators_htpasswd.html[htpasswd] * link:modules_validators_ldap.html[LDAP] * link:modules_validators_mysql.html[MySQL] * link:modules_validators_pam.html[PAM] * link:modules_validators_plain.html[Plain] * link:modules_validators_authlist.html[Fixed list] When you set up an authentication mechanism you must remember this: define a rule, configure its *security* section, adjust the priority of this rule, and last, do not flag the rule as `Final` unless you are sure you don't want your request to match other rules. A frequent mistake is to define a rule for authenticated resources with no configured handler, mark it as `Final` and set it on top of the priority list. This might prompt for authentication, but being a `Final` rule will always deliver a failure because no handler copes with the request.