View Javadoc
1   /*
2    * This software was designed and created by Jason Carroll.
3    * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4    * The author can be reached at jcarroll@cowsultants.com
5    * ITracker website: http://www.cowsultants.com
6    * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7    *
8    * This program is free software; you can redistribute it and/or modify
9    * it only under the terms of the GNU General Public License as published by
10   * the Free Software Foundation; either version 2 of the License, or
11   * (at your option) any later version.
12   *
13   * This program is distributed in the hope that it will be useful,
14   * but WITHOUT ANY WARRANTY; without even the implied warranty of
15   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   * GNU General Public License for more details.
17   */
18  
19  package org.itracker.services.authentication;
20  
21  import org.itracker.services.ConfigurationService;
22  import org.itracker.services.UserService;
23  import org.itracker.services.exceptions.AuthenticatorException;
24  import org.itracker.core.AuthenticationConstants;
25  
26  import java.util.Map;
27  
28  // TODO: Rewrite Javadocs here: we don't have session beans or EJBs anymore
29  
30  /**
31   * This class provides a skeleton implementation of the PluggableAuthenticator interface.
32   * It can be extended to provide a new authentication module for ITracker reducing the amount
33   * of effort to implement the PluggableAuthenticator interface.
34   */
35  public abstract class AbstractPluggableAuthenticator
36          implements PluggableAuthenticator, AuthenticationConstants {
37  
38      //    private final Logger logger;
39      private UserService userService = null;
40      private ConfigurationService configurationService = null;
41  
42  
43      /**
44       * This method is called after creating a new instance of the Authenticator.  It supplies
45       * some default EJB objects that the authenticator can use.
46       */
47      public void initialize(Map<?, ?> values) {
48          if (values != null) {
49              Object userService = values.get("userService");
50              Object configurationService = values.get("configurationService");
51  
52              if (userService instanceof UserService) {
53                  this.userService = (UserService) userService;
54              }
55              if (configurationService instanceof ConfigurationService) {
56                  this.configurationService = (ConfigurationService) configurationService;
57              }
58          }
59      }
60  
61      /**
62       * Returns a UserService session bean that can be used to call needed methods such
63       * as retrieving a user.
64       *
65       * @return userService
66       * @throws AuthenticatorException an exception if an error occur
67       */
68      public UserService getUserService() throws AuthenticatorException {
69          if (userService == null || !(userService instanceof UserService)) {
70              throw new AuthenticatorException(AuthenticatorException.SYSTEM_ERROR);
71          }
72  
73          return userService;
74      }
75  
76      /**
77       * Returns an ConfigurationService session bean that can be used to retreive properties
78       * that have been set in the system.  These properties can be used to provide any
79       * needed configuration for the authenticator.
80       *
81       * @return configurationService
82       * @throws AuthenticatorException an exception if an error occur
83       */
84      public ConfigurationService getConfigurationService() throws AuthenticatorException {
85          if (configurationService == null || !(configurationService instanceof ConfigurationService)) {
86              throw new AuthenticatorException(AuthenticatorException.SYSTEM_ERROR);
87          }
88  
89          return configurationService;
90      }
91  
92  }