gluu
公開メンバ関数 | 公開変数類 | 全メンバ一覧
BasicMultiAuthConfExternalAuthenticator.PersonAuthentication クラス
BasicMultiAuthConfExternalAuthenticator.PersonAuthentication の継承関係図
Inheritance graph
BasicMultiAuthConfExternalAuthenticator.PersonAuthentication 連携図
Collaboration graph

公開メンバ関数

def __init__ (self, currentTimeMillis)
 
def init (self, configurationAttributes)
 
def destroy (self, authConfiguration)
 
def getApiVersion (self)
 
def isValidAuthenticationMethod (self, usageType, configurationAttributes)
 
def getAlternativeAuthenticationMethod (self, usageType, configurationAttributes)
 
def authenticate (self, configurationAttributes, requestParameters, step)
 
def prepareForStep (self, configurationAttributes, requestParameters, step)
 
def getExtraParametersForStep (self, configurationAttributes, step)
 
def getCountAuthenticationSteps (self, configurationAttributes)
 
def getPageForStep (self, configurationAttributes, step)
 
def logout (self, configurationAttributes, requestParameters)
 
def loadAuthConfiguration (self, authConfigurationFile)
 
def validateAuthConfiguration (self, authConfiguration)
 
def createLdapExtendedEntryManagers (self, authConfiguration)
 
def createLdapExtendedConfigurations (self, authConfiguration)
 
def containsAttributeString (self, dictionary, attribute)
 
def containsAttributeArray (self, dictionary, attribute)
 

公開変数類

 currentTimeMillis
 
 ldapExtendedEntryManagers
 

詳解

構築子と解体子

◆ __init__()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.__init__ (   self,
  currentTimeMillis 
)
22  def __init__(self, currentTimeMillis):
23  self.currentTimeMillis = currentTimeMillis
24 

関数詳解

◆ authenticate()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.authenticate (   self,
  configurationAttributes,
  requestParameters,
  step 
)
76  def authenticate(self, configurationAttributes, requestParameters, step):
77  authenticationService = CdiUtil.bean(AuthenticationService)
78 
79  if (step == 1):
80  print "Basic (multi auth conf). Authenticate for step 1"
81 
82  identity = CdiUtil.bean(Identity)
83  credentials = identity.getCredentials()
84 
85  metricService = CdiUtil.bean(MetricService)
86  timerContext = metricService.getTimer(MetricType.OXAUTH_USER_AUTHENTICATION_RATE).time()
87  try:
88  keyValue = credentials.getUsername()
89  userPassword = credentials.getPassword()
90 
91  if (StringHelper.isNotEmptyString(keyValue) and StringHelper.isNotEmptyString(userPassword)):
92  for ldapExtendedEntryManager in self.ldapExtendedEntryManagers:
93  ldapConfiguration = ldapExtendedEntryManager["ldapConfiguration"]
94  ldapEntryManager = ldapExtendedEntryManager["ldapEntryManager"]
95  loginAttributes = ldapExtendedEntryManager["loginAttributes"]
96  localLoginAttributes = ldapExtendedEntryManager["localLoginAttributes"]
97 
98  print "Basic (multi auth conf). Authenticate for step 1. Using configuration: " + ldapConfiguration.getConfigId()
99 
100  idx = 0
101  count = len(loginAttributes)
102  while (idx < count):
103  primaryKey = loginAttributes[idx]
104  localPrimaryKey = localLoginAttributes[idx]
105 
106  loggedIn = authenticationService.authenticate(ldapConfiguration, ldapEntryManager, keyValue, userPassword, primaryKey, localPrimaryKey)
107  if (loggedIn):
108  metricService.incCounter(MetricType.OXAUTH_USER_AUTHENTICATION_SUCCESS)
109  return True
110  idx += 1
111  finally:
112  timerContext.stop()
113 
114  metricService.incCounter(MetricType.OXAUTH_USER_AUTHENTICATION_FAILURES)
115 
116  return False
117  else:
118  return False
119 

◆ containsAttributeArray()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.containsAttributeArray (   self,
  dictionary,
  attribute 
)
250  def containsAttributeArray(self, dictionary, attribute):
251  return ((attribute in dictionary) and (len(dictionary[attribute]) > 0))
252 

◆ containsAttributeString()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.containsAttributeString (   self,
  dictionary,
  attribute 
)
247  def containsAttributeString(self, dictionary, attribute):
248  return ((attribute in dictionary) and StringHelper.isNotEmptyString(dictionary[attribute]))
249 

◆ createLdapExtendedConfigurations()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.createLdapExtendedConfigurations (   self,
  authConfiguration 
)
218  def createLdapExtendedConfigurations(self, authConfiguration):
219  ldapExtendedConfigurations = []
220 
221  for ldapConfiguration in authConfiguration["ldap_configuration"]:
222  configId = ldapConfiguration["configId"]
223 
224  servers = ldapConfiguration["servers"]
225 
226  bindDN = None
227  bindPassword = None
228  useAnonymousBind = True
229  if (self.containsAttributeString(ldapConfiguration, "bindDN")):
230  useAnonymousBind = False
231  bindDN = ldapConfiguration["bindDN"]
232  bindPassword = ldapConfiguration["bindPassword"]
233 
234  useSSL = ldapConfiguration["useSSL"]
235  maxConnections = ldapConfiguration["maxConnections"]
236  baseDNs = ldapConfiguration["baseDNs"]
237  loginAttributes = ldapConfiguration["loginAttributes"]
238  localLoginAttributes = ldapConfiguration["localLoginAttributes"]
239 
240  ldapConfiguration = GluuLdapConfiguration(configId, bindDN, bindPassword, Arrays.asList(servers),
241  maxConnections, useSSL, Arrays.asList(baseDNs),
242  loginAttributes[0], localLoginAttributes[0], useAnonymousBind)
243  ldapExtendedConfigurations.append({ "ldapConfiguration" : ldapConfiguration, "loginAttributes" : loginAttributes, "localLoginAttributes" : localLoginAttributes })
244 
245  return ldapExtendedConfigurations
246 

◆ createLdapExtendedEntryManagers()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.createLdapExtendedEntryManagers (   self,
  authConfiguration 
)
206  def createLdapExtendedEntryManagers(self, authConfiguration):
207  ldapExtendedConfigurations = self.createLdapExtendedConfigurations(authConfiguration)
208 
209  appInitializer = CdiUtil.bean(AppInitializer)
210 
211  ldapExtendedEntryManagers = []
212  for ldapExtendedConfiguration in ldapExtendedConfigurations:
213  ldapEntryManager = appInitializer.createLdapAuthEntryManager(ldapExtendedConfiguration["ldapConfiguration"])
214  ldapExtendedEntryManagers.append({ "ldapConfiguration" : ldapExtendedConfiguration["ldapConfiguration"], "loginAttributes" : ldapExtendedConfiguration["loginAttributes"], "localLoginAttributes" : ldapExtendedConfiguration["localLoginAttributes"], "ldapEntryManager" : ldapEntryManager })
215 
216  return ldapExtendedEntryManagers
217 

◆ destroy()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.destroy (   self,
  authConfiguration 
)
51  def destroy(self, authConfiguration):
52  print "Basic (multi auth conf). Destroy"
53 
54  result = True
55  for ldapExtendedEntryManager in self.ldapExtendedEntryManagers:
56  ldapConfiguration = ldapExtendedEntryManager["ldapConfiguration"]
57  ldapEntryManager = ldapExtendedEntryManager["ldapEntryManager"]
58 
59  destoryResult = ldapEntryManager.destroy()
60  result = result and destoryResult
61  print "Basic (multi auth conf). Destroyed: " + ldapConfiguration.getConfigId() + ". Result: " + str(destoryResult)
62 
63  print "Basic (multi auth conf). Destroyed successfully"
64 
65  return result
66 

◆ getAlternativeAuthenticationMethod()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.getAlternativeAuthenticationMethod (   self,
  usageType,
  configurationAttributes 
)
73  def getAlternativeAuthenticationMethod(self, usageType, configurationAttributes):
74  return None
75 

◆ getApiVersion()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.getApiVersion (   self)
67  def getApiVersion(self):
68  return 1
69 

◆ getCountAuthenticationSteps()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.getCountAuthenticationSteps (   self,
  configurationAttributes 
)
130  def getCountAuthenticationSteps(self, configurationAttributes):
131  return 1
132 

◆ getExtraParametersForStep()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.getExtraParametersForStep (   self,
  configurationAttributes,
  step 
)
127  def getExtraParametersForStep(self, configurationAttributes, step):
128  return None
129 

◆ getPageForStep()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.getPageForStep (   self,
  configurationAttributes,
  step 
)
133  def getPageForStep(self, configurationAttributes, step):
134  return ""
135 

◆ init()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.init (   self,
  configurationAttributes 
)
25  def init(self, configurationAttributes):
26  print "Basic (multi auth conf). Initialization"
27 
28  if (not configurationAttributes.containsKey("auth_configuration_file")):
29  print "Basic (multi auth conf). The property auth_configuration_file is empty"
30  return False
31 
32  authConfigurationFile = configurationAttributes.get("auth_configuration_file").getValue2()
33  authConfiguration = self.loadAuthConfiguration(authConfigurationFile)
34  if (authConfiguration == None):
35  print "Basic (multi auth conf). File with authentication configuration should be not empty"
36  return False
37 
38  validationResult = self.validateAuthConfiguration(authConfiguration)
39  if (not validationResult):
40  return False
41 
42  ldapExtendedEntryManagers = self.createLdapExtendedEntryManagers(authConfiguration)
43  if (ldapExtendedEntryManagers == None):
44  return False
45 
46  self.ldapExtendedEntryManagers = ldapExtendedEntryManagers
47 
48  print "Basic (multi auth conf). Initialized successfully"
49  return True
50 

◆ isValidAuthenticationMethod()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.isValidAuthenticationMethod (   self,
  usageType,
  configurationAttributes 
)
70  def isValidAuthenticationMethod(self, usageType, configurationAttributes):
71  return True
72 

◆ loadAuthConfiguration()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.loadAuthConfiguration (   self,
  authConfigurationFile 
)
139  def loadAuthConfiguration(self, authConfigurationFile):
140  authConfiguration = None
141 
142  # Load authentication configuration from file
143  f = open(authConfigurationFile, 'r')
144  try:
145  authConfiguration = json.loads(f.read())
146  except:
147  print "Basic (multi auth conf). Load auth configuration. Failed to load authentication configuration from file:", authConfigurationFile
148  return None
149  finally:
150  f.close()
151 
152  return authConfiguration
153 

◆ logout()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.logout (   self,
  configurationAttributes,
  requestParameters 
)
136  def logout(self, configurationAttributes, requestParameters):
137  return True
138 

◆ prepareForStep()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.prepareForStep (   self,
  configurationAttributes,
  requestParameters,
  step 
)
120  def prepareForStep(self, configurationAttributes, requestParameters, step):
121  if (step == 1):
122  print "Basic (multi auth conf). Prepare for Step 1"
123  return True
124  else:
125  return False
126 

◆ validateAuthConfiguration()

def BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.validateAuthConfiguration (   self,
  authConfiguration 
)
154  def validateAuthConfiguration(self, authConfiguration):
155  isValid = True
156 
157  if (not ("ldap_configuration" in authConfiguration)):
158  print "Basic (multi auth conf). Validate auth configuration. There is no ldap_configuration section in configuration"
159  return False
160 
161  idx = 1
162  for ldapConfiguration in authConfiguration["ldap_configuration"]:
163  if (not self.containsAttributeString(ldapConfiguration, "configId")):
164  print "Basic (multi auth conf). Validate auth configuration. There is no 'configId' attribute in ldap_configuration section #" + str(idx)
165  return False
166 
167  configId = ldapConfiguration["configId"]
168 
169  if (not self.containsAttributeArray(ldapConfiguration, "servers")):
170  print "Basic (multi auth conf). Validate auth configuration. Property 'servers' in configuration '" + configId + "' is invalid"
171  return False
172 
173  if (self.containsAttributeString(ldapConfiguration, "bindDN")):
174  if (not self.containsAttributeString(ldapConfiguration, "bindPassword")):
175  print "Basic (multi auth conf). Validate auth configuration. Property 'bindPassword' in configuration '" + configId + "' is invalid"
176  return False
177 
178  if (not self.containsAttributeString(ldapConfiguration, "useSSL")):
179  print "Basic (multi auth conf). Validate auth configuration. Property 'useSSL' in configuration '" + configId + "' is invalid"
180  return False
181 
182  if (not self.containsAttributeString(ldapConfiguration, "maxConnections")):
183  print "Basic (multi auth conf). Validate auth configuration. Property 'maxConnections' in configuration '" + configId + "' is invalid"
184  return False
185 
186  if (not self.containsAttributeArray(ldapConfiguration, "baseDNs")):
187  print "Basic (multi auth conf). Validate auth configuration. Property 'baseDNs' in configuration '" + configId + "' is invalid"
188  return False
189 
190  if (not self.containsAttributeArray(ldapConfiguration, "loginAttributes")):
191  print "Basic (multi auth conf). Validate auth configuration. Property 'loginAttributes' in configuration '" + configId + "' is invalid"
192  return False
193 
194  if (not self.containsAttributeArray(ldapConfiguration, "localLoginAttributes")):
195  print "Basic (multi auth conf). Validate auth configuration. Property 'localLoginAttributes' in configuration '" + configId + "' is invalid"
196  return False
197 
198  if (len(ldapConfiguration["loginAttributes"]) != len(ldapConfiguration["localLoginAttributes"])):
199  print "Basic (multi auth conf). Validate auth configuration. The number of attributes in 'loginAttributes' and 'localLoginAttributes' isn't equal in configuration '" + configId + "'"
200  return False
201 
202  idx += 1
203 
204  return True
205 

メンバ詳解

◆ currentTimeMillis

BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.currentTimeMillis

◆ ldapExtendedEntryManagers

BasicMultiAuthConfExternalAuthenticator.PersonAuthentication.ldapExtendedEntryManagers

このクラス詳解は次のファイルから抽出されました: