T
- public class DatabasePasswordComposite<T extends AppUser> extends PasswordAuthComposite<T> implements AnonymisingComposite<T>
Modifier and Type | Class and Description |
---|---|
class |
DatabasePasswordComposite.AcceptHashFilter
An
AcceptFilter that selects records that match a password. |
class |
DatabasePasswordComposite.Handler
A handler class for any database fields specific to the composite.
|
protected static class |
DatabasePasswordComposite.PasswordStatus |
class |
DatabasePasswordComposite.SQLHashFilter
Filter to select from a hashed (possibly salted) string.
|
PasswordAuthComposite.PasswordResetRequiredPage, PasswordAuthComposite.UpdatePasswordTransition
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
ALG |
static Feature |
CHANGE_OLD_HASH |
static uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value |
FIRST |
static int |
GENERATED_PASSWORD_LENGTH
Number of characters generated randomly for initial passwords
If ('a'-'z') + ('A'-'Z') + ('0'-'9') = 62 ~= 64 ~= 6 bits,
16 characters gives nearly 96 bits
|
static uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value |
INVALID |
protected static Feature |
JAVA_HASH |
static Feature |
LOG_RANDOM_PASSWORD |
static Feature |
NON_RANDOM_PASSWORD |
static Feature |
NOTIFY_PASSWORD_LOCK |
static java.lang.String |
PASSWORD |
static java.lang.String |
PASSWORD_CHANGED |
static java.lang.String |
PASSWORD_FAILS |
static java.lang.String |
SALT |
protected static Feature |
SALT_FIRST_FEATURE |
static uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value |
VALID |
CHANGE_PASSWORD, USER_CHANGE_PASSWORD_FEATURE
Constructor and Description |
---|
DatabasePasswordComposite(AppUserFactory<T> fac) |
Modifier and Type | Method and Description |
---|---|
java.util.Map<java.lang.String,java.lang.Object> |
addDefaults(java.util.Map<java.lang.String,java.lang.Object> h)
Generate a set of default property values.
|
java.util.Set<java.lang.String> |
addSuppress(java.util.Set<java.lang.String> supress)
generate the class specific set of suppressed fields to be used in form creation/update
The individual forms can override these so you usually use this method to define fields that should
be suppressed in all forms.
|
void |
anonymise(T target) |
boolean |
canResetPassword(T user)
Is it legal to reset the password for the current user.
|
boolean |
checkPassword(T u,
java.lang.String password)
Check if a string matches this persons password.
|
boolean |
doWelcome(T person)
Should we show a welcome page for new users.
|
T |
findByLoginNamePassword(java.lang.String email,
java.lang.String password)
Check a supplied user-name and password.
|
T |
findByLoginNamePassword(java.lang.String email,
java.lang.String password,
boolean check_fail_count)
Check a supplied user-name and password.
|
java.lang.String |
firstPassword(T user)
set the initial randomised password for the user
|
DatabasePasswordComposite.Handler |
getHandler(T user) |
java.lang.String |
getLoginNameLabel()
The label for the LoginName input in the login form.
|
protected BaseFilter<T> |
getPasswordFilter(java.lang.String password)
return filer that matches all entries with the specified password
|
void |
lockPassword(T user)
lock the account so no password works.
|
TableSpecification |
modifyDefaultTableSpecification(TableSpecification s,
java.lang.String table)
Modify the
TableSpecification of the target factory. |
boolean |
mustResetPassword(T user)
Is the user required to change their password
|
void |
newPassword(T user)
Set a new randomised password for the user and send a notification email
|
java.lang.String |
nonRandomString(int length) |
java.lang.String |
randomisePassword(T user)
set a new randomised password for the user
|
java.lang.String |
reasonForReset(T user)
Text explanation of why
PasswordAuthComposite.mustResetPassword(AppUser) returned true. |
void |
setPassword(Hash h,
T user,
java.lang.String password) |
void |
setPassword(T user,
java.lang.String password)
Change the password for a user
|
boolean |
useSalt() |
getRequiredPages, getTransitions, getType, newSignup
addFieldHelp, addOptional, addSelectors, addTranslations, customiseForm, customiseUpdateForm, getContext, getFactory, getLogger, getRecord, getRepository, postUpdate, preRegister, release, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addEraseFields
addFieldConstraints, addFormFields
protected static final Feature JAVA_HASH
protected static final Feature SALT_FIRST_FEATURE
public static final Feature NON_RANDOM_PASSWORD
public static final Feature LOG_RANDOM_PASSWORD
public static final Feature NOTIFY_PASSWORD_LOCK
public static final Feature CHANGE_OLD_HASH
public static final java.lang.String SALT
public static final java.lang.String ALG
public static final java.lang.String PASSWORD
public static final java.lang.String PASSWORD_FAILS
public static final java.lang.String PASSWORD_CHANGED
public static final int GENERATED_PASSWORD_LENGTH
public static final uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value VALID
public static final uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value INVALID
public static final uk.ac.ed.epcc.webapp.session.DatabasePasswordComposite.PasswordStatus.Value FIRST
public DatabasePasswordComposite(AppUserFactory<T> fac)
fac
- protected BaseFilter<T> getPasswordFilter(java.lang.String password) throws DataFault
password
- DataFault
public boolean useSalt()
public java.lang.String getLoginNameLabel()
public DatabasePasswordComposite.Handler getHandler(T user)
public java.util.Map<java.lang.String,java.lang.Object> addDefaults(java.util.Map<java.lang.String,java.lang.Object> h)
TableStructureContributer
addDefaults
in interface TableStructureContributer<T extends AppUser>
addDefaults
in class Composite<T extends AppUser,PasswordAuthComposite<T extends AppUser>>
Map
of default valuespublic java.lang.String nonRandomString(int length)
public java.util.Set<java.lang.String> addSuppress(java.util.Set<java.lang.String> supress)
TableStructureContributer
addSuppress
in interface TableStructureContributer<T extends AppUser>
addSuppress
in class Composite<T extends AppUser,PasswordAuthComposite<T extends AppUser>>
Set
of fields to suppress in forms.public TableSpecification modifyDefaultTableSpecification(TableSpecification s, java.lang.String table)
TableStructureContributer
TableSpecification
of the target factory.modifyDefaultTableSpecification
in interface TableStructureContributer<T extends AppUser>
modifyDefaultTableSpecification
in class Composite<T extends AppUser,PasswordAuthComposite<T extends AppUser>>
public boolean checkPassword(T u, java.lang.String password)
checkPassword
in class PasswordAuthComposite<T extends AppUser>
u
- AppUser to checkpassword
- unencrypted password to check.public final T findByLoginNamePassword(java.lang.String email, java.lang.String password) throws DataException
PasswordAuthComposite
findByLoginNamePassword
in class PasswordAuthComposite<T extends AppUser>
DataException
public T findByLoginNamePassword(java.lang.String email, java.lang.String password, boolean check_fail_count) throws DataException
PasswordAuthComposite
findByLoginNamePassword
in class PasswordAuthComposite<T extends AppUser>
check_fail_count
- set to false to ignore failed logins.DataException
public boolean canResetPassword(T user)
PasswordAuthComposite
canResetPassword
in class PasswordAuthComposite<T extends AppUser>
user
- or null for general testpublic void setPassword(T user, java.lang.String password) throws DataFault
PasswordAuthComposite
setPassword
in class PasswordAuthComposite<T extends AppUser>
password
- clear-text passwordDataFault
public void setPassword(Hash h, T user, java.lang.String password) throws DataFault
DataFault
public void newPassword(T user) throws java.lang.Exception
PasswordAuthComposite
newPassword
in class PasswordAuthComposite<T extends AppUser>
java.lang.Exception
public java.lang.String randomisePassword(T user) throws DataFault
PasswordAuthComposite
randomisePassword
in class PasswordAuthComposite<T extends AppUser>
DataFault
public java.lang.String firstPassword(T user) throws DataFault
PasswordAuthComposite
firstPassword
in class PasswordAuthComposite<T extends AppUser>
DataFault
public void lockPassword(T user)
PasswordAuthComposite
lockPassword
in class PasswordAuthComposite<T extends AppUser>
public boolean doWelcome(T person)
PasswordAuthComposite
doWelcome
in class PasswordAuthComposite<T extends AppUser>
public boolean mustResetPassword(T user)
PasswordAuthComposite
mustResetPassword
in class PasswordAuthComposite<T extends AppUser>
public java.lang.String reasonForReset(T user)
PasswordAuthComposite
PasswordAuthComposite.mustResetPassword(AppUser)
returned true.reasonForReset
in class PasswordAuthComposite<T extends AppUser>
public void anonymise(T target)
anonymise
in interface AnonymisingComposite<T extends AppUser>