Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.acegisecurity.providers.encoding
Class PlaintextPasswordEncoder

    java.lang.Object
      org.acegisecurity.providers.encoding.BasePasswordEncoder
          org.acegisecurity.providers.encoding.PlaintextPasswordEncoder

All Implemented Interfaces:
  PasswordEncoder

    public class PlaintextPasswordEncoder

extends BasePasswordEncoder

Plaintext implementation of PasswordEncoder.

As callers may wish to extract the password and salts separately from the encoded password, the salt must not contain reserved characters (specifically '{' and '}').

Version:
  $Id: PlaintextPasswordEncoder.java,v 1.4 2005/11/17 00:55:49 benalex Exp $
Author:
  colin sampaleanu, Ben Alex

Constructor Summary
`PlaintextPasswordEncoder()`

Method Summary
`String` | `encodePassword(String rawPass, Object salt)` Encodes the specified raw password with an implementation specific algorithm.
`boolean` | `isIgnorePasswordCase()`
`boolean` | `isPasswordValid(String encPass, String rawPass, Object salt)` Validates a specified "raw" password against an encoded password.
`String[]` | `obtainPasswordAndSalt(String password)` Demerges the previously `encodePassword(String, Object)``String`.
`void` | `setIgnorePasswordCase(boolean ignorePasswordCase)` Indicates whether the password comparison is case sensitive.

Methods inherited from class org.acegisecurity.providers.encoding.BasePasswordEncoder
`demergePasswordAndSalt, mergePasswordAndSalt`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PlaintextPasswordEncoder

    public PlaintextPasswordEncoder()

Method Detail

### setIgnorePasswordCase

    public void setIgnorePasswordCase(boolean ignorePasswordCase)

  Indicates whether the password comparison is case sensitive.

  Defaults to `false`, meaning an exact case match is required.

  Parameters:
    `ignorePasswordCase` - set to `true` for less stringent comparison

### isIgnorePasswordCase

    public boolean isIgnorePasswordCase()

### isPasswordValid

    public boolean isPasswordValid(String encPass,
                                   String rawPass,
                                   Object salt)

  Description copied from interface: `PasswordEncoder`

  Validates a specified "raw" password against an encoded password.

  The encoded password should have previously been generated by `PasswordEncoder.encodePassword(String, Object)`. This method will encode the `rawPass` (using the optional `salt`), and then compared it with the presented `encPass`.

  For a discussion of salts, please refer to `PasswordEncoder.encodePassword(String, Object)`.

  Parameters:
    `encPass` - a pre-encoded password
    `rawPass` - a raw password to encode and compare against the pre-encoded password
    `salt` - optionally used by the implementation to "salt" the raw password before encoding. A `null` value is legal.
  Returns:
    DOCUMENT ME!

### encodePassword

    public String encodePassword(String rawPass,
                                 Object salt)

  Description copied from interface: `PasswordEncoder`

  Encodes the specified raw password with an implementation specific algorithm.

  This will generally be a one-way message digest such as MD5 or SHA, but may also be a plaintext variant which does no encoding at all, but rather returns the same password it was fed. The latter is useful to plug in when the original password must be stored as-is.

  The specified salt will potentially be used by the implementation to "salt" the initial value before encoding. A salt is usually a user-specific value which is added to the password before the digest is computed. This means that computation of digests for common dictionary words will be different than those in the backend store, because the dictionary word digests will not reflect the addition of the salt. If a per-user salt is used (rather than a system-wide salt), it also means users with the same password will have different digest encoded passwords in the backend store.

  If a salt value is provided, the same salt value must be use when calling the `PasswordEncoder.isPasswordValid(String, String, Object)` method. Note that a specific implementation may choose to ignore the salt value (via `null`), or provide its own.

  Parameters:
    `rawPass` - the password to encode
    `salt` - optionally used by the implementation to "salt" the raw password before encoding. A `null` value is legal.
  Returns:
    DOCUMENT ME!

### obtainPasswordAndSalt

    public String[] obtainPasswordAndSalt(String password)

  Demerges the previously `encodePassword(String, Object)``String`.

  The resulting array is guaranteed to always contain two elements. The first is the password, and the second is the salt.

  Throws an exception if `null` or an empty `String` is passed to the method.

  Parameters:
    `password` - from `encodePassword(String, Object)`
  Returns:
    an array containing the password and salt

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2005 Acegi Technology Pty Limited. All Rights Reserved.