1 /******************************************************************************
2 * BSAccountMan - This Interface is the API into the BuckoSoft Account Manager
3 *
4 * BSAccount - BuckoSoft Web Account Manager
5 * Copyright(c) 2007 - Dick Balaska and BuckoSoft, Corp.
6 *
7 */
8 package com.buckosoft.BSAccount;
9
10 import javax.servlet.http.HttpServletRequest;
11
12 import com.buckosoft.BSAccount.domain.BSAccount;
13 import com.buckosoft.BSAccount.domain.BSAccountUser;
14 import com.buckosoft.BSAccount.domain.BSAccountUserWebSession;
15
16 /** This Interface is the API into the BuckoSoft Account Manager.
17 * This API deals in BSAccount objects.
18 * @see BSAccount
19 * @author dick
20 *
21 */
22 public interface BSAccountMan {
23
24 BSAccountUserWebSession getUserWebSession(HttpServletRequest request);
25
26 boolean isUserWebSession(HttpServletRequest request);
27
28 /** Get a user account, given his username and password. This effectively logs the user in.
29 * @param username His registered BuckoSoft username
30 * @param password The cleartext password that the user typed in. NB: BSAccount passwords <i>are</i> encrypted in the database.
31 * @return The user's BSAccount or not if username and password don't match the one in the system.
32 */
33 BSAccount getAccount(String username, String password);
34
35 BSAccountUser getUser(BSAccount account);
36
37 /** Create a new anonymous BSAccountUSer
38 * @return The new user
39 */
40 BSAccountUser getNewUser();
41
42
43 String getAppName();
44 void setAppName(String appName);
45
46 /** Given a logged in account, return a key that can be used by another app to retrieve this logged in account.
47 * This is used by BSAccountMan to
48 * @param account The BSAccount that wants to jump apps
49 * @return A random number or 0 if the account is not logged in
50 */
51 long getAppJumper(BSAccount account);
52 }