Project Documentation
Foundation

Summary

Tag name: <s:passwordStrength>
UIComponent class: org.apache.myfaces.custom.passwordStrength.PasswordStrengthComponent
Tag class: org.apache.myfaces.custom.passwordStrength.PasswordStrengthTag
Component type: org.apache.myfaces.PasswordStrength
Component family: org.apache.myfaces.PasswordStrength
Renderer type: org.apache.myfaces.PasswordStrength
Renderer class: org.apache.myfaces.custom.passwordStrength.PasswordStrengthRenderer

The passwordStrength component is needed by the web sites which ask the user to enter a powerful password for the purpose of the registration stuff.

The component enables its user to know the strength of the password while (he/she) types it before even submit the form to the server [please see the screenshots].

The component enables its user to define his custom security policy for his password in an easy manner.

The component also have 2 types of presenting the password strength. Till now the strength can be represented as text or progressbar.

Screen Shot

passwordStrength
passwordStrength

Usage

<s:passwordStrength [id="txtPwdText"] 
                       [preferredPasswordLength="10"]
                       [value="#{passwordStrengthBean.password}"] 
                       [prefixText="Strength : "]
                       [textStrengthDescriptions="Very Poor;Weak;Average;Strong;Excellent"] 
                       [strengthIndicatorType="text|bar"]
                       [useCustomSecurity="true|false"]
                       [customSecurityExpression="A3S2N3A2"] 
                       [penaltyRatio="50"]>                     
        </s:passwordStrength>

Instructions

see passwordStrength.jsp in the Sandbox examples.

Attributes

Name Type Supports EL? Description
accesskey String Yes HTML: Sets the access key for this element.
align String Yes HTML: Specifies the horizontal alignment of this element. Deprecated in HTML 4.01.
alt String Yes HTML: Specifies alternative text that can be used by a browser that can't show this element.
binding String Only EL Identifies a backing bean property (of type UIComponent or appropriate subclass) to bind to this component instance. This value must be an EL expression.
converter javax.faces.convert.Converter Yes The value can either be a static value (ID) or an EL expression. When a static id is specified, an instance of the converter type registered with that id is used. When this is an EL expression, the result of evaluating the expression must be an object that implements the Converter interface.
customSecurityExpression String Yes This string determines the expression of the custom security rule of the password

Note that the expression has the following format :

*******************************************************

S (Number) N (Number) A (Number)

  • Where S stands for Symbols
  • Where N stands for Numbers
  • Where A stands for Alphabets

*******************************************************

For example) A4N2S3A2 Means that the password will be as following :

  • 4 or more Alphabets followed by
  • 2 or more Numbers followed by
  • 3 or more Symbols followed by
  • 2 or more Alphabets

*******************************************************

Note also that the useCustomSecurity should be set to true.

dir String Yes HTML: The direction of text display, either 'ltr' (left-to-right) or 'rtl' (right-to-left).
disabled boolean Yes HTML: When true, this element cannot receive focus.
id String Yes An identifier for this particular component instance within a component view.

The id must be unique within the scope of the tag's enclosing NamingContainer (eg h:form or f:subview). The id is not necessarily unique across all components in the current view

This value must be a static value, ie not change over the lifetime of a component. It cannot be defined via an EL expression; only a string is permitted.

immediate boolean Yes A boolean value that identifies the phase during which value change events should fire. During normal event processing, value change events are fired during the "process validations" phase of request processing. If this attribute is set to "true", these methods are fired instead at the end of the "apply request values" phase.
lang String Yes HTML: The base language of this document.
maxlength int Yes HTML: The maximum number of characters allowed to be entered.
onblur String Yes HTML: Specifies a script to be invoked when the element loses focus.
onchange String Yes HTML: Specifies a script to be invoked when the element is modified.
onclick String Yes HTML: Script to be invoked when the element is clicked.
ondblclick String Yes HTML: Script to be invoked when the element is double-clicked.
onfocus String Yes HTML: Specifies a script to be invoked when the element receives focus.
onkeydown String Yes HTML: Script to be invoked when a key is pressed down over this element.
onkeypress String Yes HTML: Script to be invoked when a key is pressed over this element.
onkeyup String Yes HTML: Script to be invoked when a key is released over this element.
onmousedown String Yes HTML: Script to be invoked when the pointing device is pressed over this element.
onmousemove String Yes HTML: Script to be invoked when the pointing device is moved while it is in this element.
onmouseout String Yes HTML: Script to be invoked when the pointing device is moves out of this element.
onmouseover String Yes HTML: Script to be invoked when the pointing device is moved into this element.
onmouseup String Yes HTML: Script to be invoked when the pointing device is released over this element.
onselect String Yes HTML: Specifies a script to be invoked when the element is selected.
penaltyRatio String Yes This attribute determines the penalty ratio that will decrease the password Strength if the custom security expression is not met. Note also that the useCustomSecurity should be set to true to apply this flag. Possible values from 0 to 100. Default value is 50.
preferredPasswordLength String Yes The prefered length of the password
prefixText String Yes The prefix of the component message
readonly boolean Yes HTML: When true, indicates that this component cannot be modified by the user. The element may receive focus unless it has also been disabled.
rendered boolean Yes A boolean value that indicates whether this component should be rendered. Default value: true.
required boolean Yes A boolean value that indicates whether an input value is required. If this value is true, and no input value is provided, the error message javax.faces.component.UIInput.REQUIRED is posted.
showDetails String Yes This flag {true | false} determines whether to show the details (left characters). default is true
size int Yes HTML: The initial width of this control, in characters.
strengthIndicatorType String Yes This flag determines the indicator type. It can be {text or bar}. Default is text
style String Yes HTML: CSS styling instructions.
styleClass String Yes The CSS class for this element. Corresponds to the HTML 'class' attribute.
tabindex String Yes HTML: Specifies the position of this element within the tab order of the document.
textStrengthDescriptions String Yes The text strength descriptions
title String Yes HTML: An advisory title for this element. Often used by the user agent as a tooltip.
useCustomSecurity String Yes This flag determines whether to user custom security rules instead of just depending on the password length. The default is false.
validator javax.faces.el.MethodBinding Only EL A method binding EL expression, accepting FacesContext, UIComponent, and Object parameters, and returning void, that validates the component's local value.
value Object Yes The initial value of this component. This value is generally set as a value-binding in the form #{myBean.myProperty}, where myProperty can be any data-type of Java (also user-defined data-types), if a converter for this data-type exists. Special cases: 1) f:selectItems - value needs to bind to a list (or an array) of javax.faces.model.SelectItem-instances 2) components implementing UISelectMany (e.g. h:selectManyCheckbox) - value needs to bind to a list (or an array) of values, where the values need to be of the same data-type as the choices of the associated f:selectItems-component 3) components implementing UIData (e.g. h:dataTable) - value needs to bind to a list (or an array) of values, which will be iterated over when the data-table is processed
valueChangeListener javax.faces.el.MethodBinding Only EL A method binding EL expression, accepting a ValueChangeEvent parameter and returning void. The specified method is invoked if this component is modified. The phase that this handler is fired in can be controlled via the immediate attribute.