org.benow.web.security
Interface SecurityWebService

All Superinterfaces:
org.benow.java.spec.Markup, org.benow.service.Service
All Known Implementing Classes:
RepoSecurityWebService

public interface SecurityWebService
extends org.benow.service.Service


Nested Class Summary
static class SecurityWebService.ModuleInfo
           
 
Nested classes/interfaces inherited from interface org.benow.java.spec.Markup
org.benow.java.spec.Markup.ParamName, org.benow.java.spec.Markup.ReturnDescription
 
Field Summary
static java.lang.String SESSION_POST_LOGIN_URL
           
 
Method Summary
 org.benow.security.user.User acceptLoginAgreement(boolean acceptLoginAgreement)
          Accept the login agreement as redirected to if a login agreement has been specified.
 org.benow.security.user.User addInvitedUser(java.lang.String name, java.lang.String pass, java.lang.String passVerify, java.lang.String email, java.lang.String captcha, java.lang.String confirm, java.lang.String redir)
           
 void addPermissions(org.benow.security.permission.Role role, java.util.List<org.benow.security.permission.Permission> permissions)
          Add permissions to role
 void addPermissions(java.lang.String userName, java.util.List<org.benow.security.permission.Permission> permissions)
          Add individually assigned permissions to user
 void addRoles(org.benow.security.user.User user, java.util.List<org.benow.security.permission.Role> roles)
          Add roles to user
 org.benow.security.user.User addUser(java.lang.String name, java.lang.String pass, java.lang.String passVerify, java.lang.String email, java.lang.String captcha)
           
 void assertInvited(java.lang.String email)
           
 void changePassword(java.lang.String username, java.lang.String current, java.lang.String changed)
           
 void changePasswordForCurrentUser(java.lang.String current, java.lang.String changed)
          Change the password of the current user.
 void confirm(java.lang.String userName, java.lang.String code)
           
 org.benow.security.permission.Role createRole(java.lang.String name)
           
 org.benow.security.user.User createUser(java.lang.String name, java.lang.String password, java.lang.String email, java.lang.String description, boolean requirePassChange)
          Creates a new user
 void deleteUser(java.lang.Object key)
          Deletes the user with the given key.
 org.benow.security.user.User getCurrentUser()
           
 java.util.List<SecurityWebService.ModuleInfo> getEditableUserModules(java.lang.String userName)
          Gets the user modules for the given user which may be edited.
 java.io.InputStream getLoginAgreement()
           
 java.util.List<org.benow.security.permission.Permission> getPermissions()
           
 java.util.List<org.benow.security.permission.Permission> getPermissionsNotInRole(java.lang.String roleName)
           
 java.util.List<org.benow.security.permission.Permission> getPermissionsNotInUser(java.lang.String userName)
           
 org.benow.security.permission.Role getRole(java.lang.String name)
           
 java.util.List<org.benow.security.permission.Role> getRoles()
           
 org.benow.security.user.User getUser(java.lang.String name)
           
 org.benow.java.spec.argument.ClassSpecification getUserModuleSpecification(java.lang.Class<? extends org.benow.security.user.UserModule> moduleClass)
           
 java.util.List<org.benow.java.spec.argument.ClassSpecification> getUserModuleSpecifications()
           
 java.util.List<org.benow.security.user.User> getUsers()
           
 org.benow.security.user.User invite(java.lang.String email, java.lang.String captcha, java.lang.String joinRedirect)
          Invite a user at the given email address, redirecting them to the given location on join.
 org.benow.security.user.User login(java.lang.String username, java.lang.String password)
          Login as the given user.
 org.benow.security.user.User login(java.lang.String username, java.lang.String password, java.lang.String redirect)
          Login as the given user.
 org.benow.security.user.User login(java.lang.String username, java.lang.String password, java.lang.String redirect, boolean remember)
          Login as the given user.
 void logout()
          Logout, removing assocation with authenticated user.
 void logout(java.lang.String redirect)
          Logout, redirecting to given location
 org.benow.security.user.User reinvite(java.lang.String email)
          Re-invites the user at the given email
 void removePermissions(org.benow.security.permission.Role role, java.util.List<org.benow.security.permission.Permission> permissions)
          Remove permissions from role
 void removePermissions(java.lang.String userName, java.util.List<org.benow.security.permission.Permission> permissions)
          Remove individually assigned permissions from user
 void removeRoles(org.benow.security.user.User user, java.util.List<org.benow.security.permission.Role> role)
          Remove roles from user
 void resendConfirmation(java.lang.String email)
          Resend the confirmation email sent during the registration (addUser) process to the user with the given email.
 void restart()
          Restart the application.
 void sendReminder(java.lang.String email)
          Sends a password reminder email to a registered user
 void setDisabled(java.lang.Object userKey, boolean disabled)
          Sets the disabled status for the user with the given key.
 void setupAP(java.lang.String value)
           
 void unconfirm(java.lang.String user)
           
 void update(org.benow.security.permission.Role role)
           
 org.benow.security.user.User updateUser(java.lang.Object key, java.lang.String name, java.lang.String currentPassword, java.lang.String password, java.lang.String email, java.lang.String description, boolean requirePassChange)
          Updates the user with the given key
 

Field Detail

SESSION_POST_LOGIN_URL

static final java.lang.String SESSION_POST_LOGIN_URL
See Also:
Constant Field Values
Method Detail

getUsers

java.util.List<org.benow.security.user.User> getUsers()

getUser

org.benow.security.user.User getUser(java.lang.String name)

getCurrentUser

org.benow.security.user.User getCurrentUser()
Returns:
the current user

getEditableUserModules

java.util.List<SecurityWebService.ModuleInfo> getEditableUserModules(java.lang.String userName)
Gets the user modules for the given user which may be edited. In order to be edited, there must be a html/admin/security/modules/X.page where X is the simple or full user module class name.

Returns:

getUserModuleSpecifications

java.util.List<org.benow.java.spec.argument.ClassSpecification> getUserModuleSpecifications()

getUserModuleSpecification

org.benow.java.spec.argument.ClassSpecification getUserModuleSpecification(java.lang.Class<? extends org.benow.security.user.UserModule> moduleClass)
                                                                           throws org.benow.java.spec.SpecificationException
Throws:
org.benow.java.spec.SpecificationException

getRole

org.benow.security.permission.Role getRole(java.lang.String name)
                                           throws org.benow.repository.NoSuchObjectException
Throws:
org.benow.repository.NoSuchObjectException

getRoles

java.util.List<org.benow.security.permission.Role> getRoles()

getPermissions

java.util.List<org.benow.security.permission.Permission> getPermissions()
Returns:
all known permissions

getPermissionsNotInUser

java.util.List<org.benow.security.permission.Permission> getPermissionsNotInUser(java.lang.String userName)
Parameters:
userName -
Returns:
permissions not held by user of given name

getPermissionsNotInRole

java.util.List<org.benow.security.permission.Permission> getPermissionsNotInRole(java.lang.String roleName)
Parameters:
userName -
Returns:
permissions not held by role of given name

update

void update(org.benow.security.permission.Role role)

addRoles

void addRoles(org.benow.security.user.User user,
              java.util.List<org.benow.security.permission.Role> roles)
Add roles to user

Parameters:
user -
roles -

removeRoles

void removeRoles(org.benow.security.user.User user,
                 java.util.List<org.benow.security.permission.Role> role)
Remove roles from user

Parameters:
user -
role -

addPermissions

void addPermissions(org.benow.security.permission.Role role,
                    java.util.List<org.benow.security.permission.Permission> permissions)
Add permissions to role

Parameters:
role -
permissions -

removePermissions

void removePermissions(org.benow.security.permission.Role role,
                       java.util.List<org.benow.security.permission.Permission> permissions)
Remove permissions from role

Parameters:
role -
permissions -

addPermissions

void addPermissions(java.lang.String userName,
                    java.util.List<org.benow.security.permission.Permission> permissions)
Add individually assigned permissions to user

Parameters:
username -
permissions -

removePermissions

void removePermissions(java.lang.String userName,
                       java.util.List<org.benow.security.permission.Permission> permissions)
Remove individually assigned permissions from user

Parameters:
username -
permissions -

createUser

org.benow.security.user.User createUser(java.lang.String name,
                                        java.lang.String password,
                                        java.lang.String email,
                                        java.lang.String description,
                                        boolean requirePassChange)
                                        throws RedirectException
Creates a new user

Parameters:
name - name of new user, must be unique or a securityexception is thrown
password - password for new user
email - email for new user
description - description for new user
requirePassChange - true if a password change is to be done on next login
Returns:
created user
Throws:
RedirectException

updateUser

org.benow.security.user.User updateUser(java.lang.Object key,
                                        java.lang.String name,
                                        java.lang.String currentPassword,
                                        java.lang.String password,
                                        java.lang.String email,
                                        java.lang.String description,
                                        boolean requirePassChange)
                                        throws RedirectException,
                                               org.benow.repository.NoSuchObjectException
Updates the user with the given key

Parameters:
key - key of user to update
name - new name for user
currentPassword - current password of user
password - new password of user
email - new email
description - new description
requirePassChange - if true, a password change will be required at next login
Returns:
updated user
Throws:
RedirectException
org.benow.repository.NoSuchObjectException

createRole

org.benow.security.permission.Role createRole(java.lang.String name)

login

org.benow.security.user.User login(java.lang.String username,
                                   java.lang.String password)
                                   throws org.benow.security.service.LoginAgreementException,
                                          java.lang.SecurityException,
                                          java.lang.Exception
Login as the given user. Once logged in, actions are associated with user. username may be username or email corresponding to a username.

Parameters:
name -
password -
Throws:
java.lang.SecurityException - on bad name or password
java.lang.Exception
org.benow.security.service.LoginAgreementException - if there is a login agreement to be accepted.

login

org.benow.security.user.User login(java.lang.String username,
                                   java.lang.String password,
                                   java.lang.String redirect)
                                   throws org.benow.security.service.LoginAgreementException,
                                          java.lang.SecurityException,
                                          java.lang.Exception
Login as the given user. Once logged in, actions are associated with user. username may be username or email corresponding to a username.

Parameters:
name -
password -
redirect - location to redirect to on successful login
Throws:
java.lang.SecurityException - on bad name or password
java.lang.Exception
org.benow.security.service.LoginAgreementException - if there is a login agreement to be accepted.

login

org.benow.security.user.User login(java.lang.String username,
                                   java.lang.String password,
                                   java.lang.String redirect,
                                   boolean remember)
                                   throws org.benow.security.service.LoginAgreementException,
                                          java.lang.SecurityException,
                                          java.lang.Exception
Login as the given user. Once logged in, actions are associated with user. username may be username or email corresponding to a username.

Parameters:
name -
password -
redirect - location to redirect to on successful login
remember - if true, remember user information in a cookie, so that repeated logins not required
Throws:
java.lang.SecurityException - on bad name or password
java.lang.Exception
org.benow.security.service.LoginAgreementException - if there is a login agreement to be accepted.

acceptLoginAgreement

org.benow.security.user.User acceptLoginAgreement(boolean acceptLoginAgreement)
                                                  throws java.lang.SecurityException,
                                                         RedirectException
Accept the login agreement as redirected to if a login agreement has been specified.

Parameters:
acceptLoginAgreement -
Returns:
Throws:
java.lang.SecurityException
RedirectException

changePassword

void changePassword(java.lang.String username,
                    java.lang.String current,
                    java.lang.String changed)
                    throws java.lang.SecurityException,
                           java.lang.Exception
Throws:
java.lang.SecurityException
java.lang.Exception

changePasswordForCurrentUser

void changePasswordForCurrentUser(java.lang.String current,
                                  java.lang.String changed)
                                  throws java.lang.SecurityException,
                                         java.lang.Exception
Change the password of the current user.

Parameters:
current -
changed -
Throws:
java.lang.SecurityException
java.lang.Exception

logout

void logout()
            throws java.lang.Exception
Logout, removing assocation with authenticated user.

Throws:
java.lang.Exception

logout

void logout(java.lang.String redirect)
            throws java.lang.Exception
Logout, redirecting to given location

Parameters:
redirect -
Throws:
java.lang.Exception

sendReminder

void sendReminder(java.lang.String email)
                  throws java.lang.SecurityException,
                         org.benow.repository.ObjectRepositoryError,
                         javax.mail.MessagingException
Sends a password reminder email to a registered user

Parameters:
email -
Throws:
javax.mail.MessagingException
org.benow.repository.ObjectRepositoryError
java.lang.SecurityException

addUser

org.benow.security.user.User addUser(java.lang.String name,
                                     java.lang.String pass,
                                     java.lang.String passVerify,
                                     java.lang.String email,
                                     java.lang.String captcha)
                                     throws TerseWebException,
                                            RedirectException,
                                            java.net.MalformedURLException,
                                            javax.mail.MessagingException
Throws:
TerseWebException
RedirectException
java.net.MalformedURLException
javax.mail.MessagingException

confirm

void confirm(java.lang.String userName,
             java.lang.String code)
             throws org.benow.repository.NoSuchObjectException,
                    RedirectException,
                    java.net.MalformedURLException,
                    javax.mail.MessagingException
Throws:
org.benow.repository.NoSuchObjectException
RedirectException
java.net.MalformedURLException
javax.mail.MessagingException

unconfirm

void unconfirm(java.lang.String user)
               throws RedirectException
Throws:
RedirectException

resendConfirmation

void resendConfirmation(java.lang.String email)
                        throws RedirectException
Resend the confirmation email sent during the registration (addUser) process to the user with the given email.

Parameters:
email -
Throws:
RedirectException

restart

void restart()
             throws org.benow.util.NotSupportedError
Restart the application. Only applicable if restart ability (via wrapper script) has been indicated by presence of System property: restartSupported=true.

Throws:
org.benow.util.NotSupportedError - if restart is not supported

getLoginAgreement

java.io.InputStream getLoginAgreement()
                                      throws java.io.IOException
Throws:
java.io.IOException

setupAP

void setupAP(java.lang.String value)
             throws java.lang.Exception
Throws:
java.lang.Exception

invite

org.benow.security.user.User invite(java.lang.String email,
                                    java.lang.String captcha,
                                    java.lang.String joinRedirect)
                                    throws NoRemainingInvitationsException,
                                           javax.mail.MessagingException,
                                           java.net.MalformedURLException,
                                           InvalidCaptchaException,
                                           AlreadyInvitedException,
                                           AlreadyExistsException,
                                           java.lang.Exception
Invite a user at the given email address, redirecting them to the given location on join.

Parameters:
email - email address of user to invite
captcha - the user entered value of the associated captcha
joinRedirect - uri to redirect the user to after join
Returns:
the newly created, but unconfirmed user
Throws:
NoRemainingInvitationsException
javax.mail.MessagingException
java.net.MalformedURLException
InvalidCaptchaException
java.lang.Exception
AlreadyInvitedException
AlreadyExistsException

reinvite

org.benow.security.user.User reinvite(java.lang.String email)
                                      throws org.benow.repository.NoSuchObjectException,
                                             AlreadyJoinedException,
                                             java.lang.Exception
Re-invites the user at the given email

Parameters:
email - email address for user to reinvite
Returns:
invited user
Throws:
org.benow.repository.NoSuchObjectException - if user with given email was never previously invited
AlreadyJoinedException - if user has already accepted a previous invitation
java.lang.Exception

assertInvited

void assertInvited(java.lang.String email)
                   throws NotInvitedException,
                          AlreadyJoinedException,
                          RedirectException
Parameters:
email -
Throws:
NotInvitedException - if user at email was not invited.
AlreadyJoinedException - if the user with the given email has already joined
RedirectException - if there is a current user (not anonymous), the user will be logged out and current page will be redisplayed

addInvitedUser

org.benow.security.user.User addInvitedUser(java.lang.String name,
                                            java.lang.String pass,
                                            java.lang.String passVerify,
                                            java.lang.String email,
                                            java.lang.String captcha,
                                            java.lang.String confirm,
                                            java.lang.String redir)
                                            throws TerseWebException,
                                                   RedirectException,
                                                   java.net.MalformedURLException,
                                                   javax.mail.MessagingException,
                                                   InvalidCaptchaException
Throws:
TerseWebException
RedirectException
java.net.MalformedURLException
javax.mail.MessagingException
InvalidCaptchaException

deleteUser

void deleteUser(java.lang.Object key)
                throws org.benow.repository.NoSuchObjectException
Deletes the user with the given key. The administrator, default (anonymous) and template:registered cannot be deleted. Requires admin permission

Parameters:
key -
Throws:
org.benow.repository.NoSuchObjectException

setDisabled

void setDisabled(java.lang.Object userKey,
                 boolean disabled)
                 throws org.benow.repository.NoSuchObjectException
Sets the disabled status for the user with the given key. If a user is disabled, they may not login.

Parameters:
userKey - key of user to adjust disabled status
disabled - true to disable, false to not be disabled
Throws:
org.benow.repository.NoSuchObjectException