gluu
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開変数類 | 非公開メンバ関数 | 非公開変数類 | 全メンバ一覧
org.xdi.oxauth.service.BaseAuthFilterService クラスabstract
org.xdi.oxauth.service.BaseAuthFilterService の継承関係図
Inheritance graph
org.xdi.oxauth.service.BaseAuthFilterService 連携図
Collaboration graph

クラス

class  AuthenticationFilterWithParameters
 
class  IndexedParameter
 

公開メンバ関数

void init (List<? extends BaseFilter > p_filterList, boolean p_enabled, boolean p_filterAttributes)
 
String loadEntryDN (PersistenceEntryManager p_manager, AuthenticationFilterWithParameters authenticationFilterWithParameters, Map< String, String > normalizedAttributeValues)
 
String processAuthenticationFilters (Map<?, ?> attributeValues)
 
abstract String processAuthenticationFilter (AuthenticationFilterWithParameters p_allowed, Map<?, ?> p_attributeValues)
 
List< AuthenticationFilterWithParametersgetFilterWithParameters ()
 
boolean isEnabled ()
 
void setEnabled (boolean p_enabled)
 
boolean isFilterAttributes ()
 
void setFilterAttributes (boolean p_filterAttributes)
 

静的公開メンバ関数

static List< AuthenticationFilterWithParametersgetAllowedAuthenticationFilters (Collection<?> attributeNames, List< AuthenticationFilterWithParameters > p_filterList)
 
static Map< String, String > normalizeAttributeMap (Map<?, ?> attributeValues)
 
static String buildFilter (AuthenticationFilterWithParameters authenticationFilterWithParameters, Map< String, String > p_normalizedAttributeValues)
 
static String normalizeAttributeName (String attributeName)
 

静的公開変数類

static final Pattern PARAM_VALUE_PATTERN = Pattern.compile("([\\w]+)[\\s]*\\=[\\*\\s]*(\\{[\\s]*[\\d]+[\\s]*\\})[\\*\\s]*")
 

限定公開変数類

Logger log
 

非公開メンバ関数

List< AuthenticationFilterWithParametersprepareAuthenticationFilterWithParameters (List<? extends BaseFilter > p_filterList)
 

非公開変数類

boolean enabled
 
boolean filterAttributes = true
 
List< AuthenticationFilterWithParametersfilterWithParameters
 

詳解

著者
Yuriy Movchan
Yuriy Zabrovarnyy
Javier Rojas Blum
バージョン
March 4, 2016

関数詳解

◆ buildFilter()

static String org.xdi.oxauth.service.BaseAuthFilterService.buildFilter ( AuthenticationFilterWithParameters  authenticationFilterWithParameters,
Map< String, String >  p_normalizedAttributeValues 
)
inlinestatic
205  {
206  String filter = authenticationFilterWithParameters.getAuthenticationFilter().getFilter();
207  for (IndexedParameter indexedParameter : authenticationFilterWithParameters.getIndexedVariables()) {
208  String attributeValue = p_normalizedAttributeValues.get(indexedParameter.getParamName());
209  if (attributeValue != null) {
210  filter = filter.replace(indexedParameter.getParamIndex(), attributeValue);
211  }
212  }
213  return filter;
214  }

◆ getAllowedAuthenticationFilters()

static List<AuthenticationFilterWithParameters> org.xdi.oxauth.service.BaseAuthFilterService.getAllowedAuthenticationFilters ( Collection<?>  attributeNames,
List< AuthenticationFilterWithParameters p_filterList 
)
inlinestatic
162  {
163  List<AuthenticationFilterWithParameters> tmpAuthenticationFilterWithParameters = new ArrayList<AuthenticationFilterWithParameters>();
164  if (attributeNames == null) {
165  return tmpAuthenticationFilterWithParameters;
166  }
167 
168  Set<String> normalizedAttributeNames = new HashSet<String>();
169  for (Object attributeName : attributeNames) {
170  normalizedAttributeNames.add(normalizeAttributeName(attributeName.toString()));
171  }
172 
173  for (AuthenticationFilterWithParameters autheticationFilterWithParameters : p_filterList) {
174  if (normalizedAttributeNames.containsAll(autheticationFilterWithParameters.getVariableNames())) {
175  tmpAuthenticationFilterWithParameters.add(autheticationFilterWithParameters);
176  }
177  }
178 
179  return tmpAuthenticationFilterWithParameters;
180  }
static String normalizeAttributeName(String attributeName)
Definition: BaseAuthFilterService.java:275

◆ getFilterWithParameters()

List<AuthenticationFilterWithParameters> org.xdi.oxauth.service.BaseAuthFilterService.getFilterWithParameters ( )
inline
255  {
256  return filterWithParameters;
257  }
List< AuthenticationFilterWithParameters > filterWithParameters
Definition: BaseAuthFilterService.java:46

◆ init()

void org.xdi.oxauth.service.BaseAuthFilterService.init ( List<? extends BaseFilter p_filterList,
boolean  p_enabled,
boolean  p_filterAttributes 
)
inline
122  {
123  this.enabled = p_enabled;
125  this.filterAttributes = p_filterAttributes;
126  }
boolean filterAttributes
Definition: BaseAuthFilterService.java:44
boolean enabled
Definition: BaseAuthFilterService.java:43
List< AuthenticationFilterWithParameters > filterWithParameters
Definition: BaseAuthFilterService.java:46
List< AuthenticationFilterWithParameters > prepareAuthenticationFilterWithParameters(List<? extends BaseFilter > p_filterList)
Definition: BaseAuthFilterService.java:128

◆ isEnabled()

boolean org.xdi.oxauth.service.BaseAuthFilterService.isEnabled ( )
inline
259  {
260  return enabled;
261  }
boolean enabled
Definition: BaseAuthFilterService.java:43

◆ isFilterAttributes()

boolean org.xdi.oxauth.service.BaseAuthFilterService.isFilterAttributes ( )
inline
267  {
268  return filterAttributes;
269  }
boolean filterAttributes
Definition: BaseAuthFilterService.java:44

◆ loadEntryDN()

String org.xdi.oxauth.service.BaseAuthFilterService.loadEntryDN ( PersistenceEntryManager  p_manager,
AuthenticationFilterWithParameters  authenticationFilterWithParameters,
Map< String, String >  normalizedAttributeValues 
)
inline
216  {
217  final String filter = buildFilter(authenticationFilterWithParameters, normalizedAttributeValues);
218 
219  Filter ldapFilter = Filter.create(filter);
220  List<DummyEntry> foundEntries = p_manager.findEntries(authenticationFilterWithParameters.getAuthenticationFilter().getBaseDn(), DummyEntry.class, ldapFilter, new String[0]);
221 
222  if (foundEntries.size() > 1) {
223  log.error("Found more than one entry by filter: '{}'. Entries:\n", ldapFilter, foundEntries);
224  return null;
225  }
226 
227  if (!(foundEntries.size() == 1)) {
228  return null;
229  }
230 
231  return foundEntries.get(0).getDn();
232  }
static String buildFilter(AuthenticationFilterWithParameters authenticationFilterWithParameters, Map< String, String > p_normalizedAttributeValues)
Definition: BaseAuthFilterService.java:205
Logger log
Definition: BaseAuthFilterService.java:39

◆ normalizeAttributeMap()

static Map<String, String> org.xdi.oxauth.service.BaseAuthFilterService.normalizeAttributeMap ( Map<?, ?>  attributeValues)
inlinestatic
182  {
183  Map<String, String> normalizedAttributeValues = new HashMap<String, String>();
184  for (Map.Entry<?, ?> attributeValueEntry : attributeValues.entrySet()) {
185  String attributeValue = null;
186 
187  Object attributeValueEntryValue = attributeValueEntry.getValue();
188  if (attributeValueEntryValue instanceof String[]) {
189  if (ArrayHelper.isNotEmpty((String[]) attributeValueEntryValue)) {
190  attributeValue = ((String[]) attributeValueEntryValue)[0];
191  }
192  } else if (attributeValueEntryValue instanceof String) {
193  attributeValue = (String) attributeValueEntryValue;
194  } else if (attributeValueEntryValue != null) {
195  attributeValue = attributeValueEntryValue.toString();
196  }
197 
198  if (attributeValue != null) {
199  normalizedAttributeValues.put(normalizeAttributeName(attributeValueEntry.getKey().toString()), attributeValue);
200  }
201  }
202  return normalizedAttributeValues;
203  }
static String normalizeAttributeName(String attributeName)
Definition: BaseAuthFilterService.java:275

◆ normalizeAttributeName()

static String org.xdi.oxauth.service.BaseAuthFilterService.normalizeAttributeName ( String  attributeName)
inlinestatic
275  {
276  return StringHelper.toLowerCase(attributeName.trim());
277  }

◆ prepareAuthenticationFilterWithParameters()

List<AuthenticationFilterWithParameters> org.xdi.oxauth.service.BaseAuthFilterService.prepareAuthenticationFilterWithParameters ( List<? extends BaseFilter p_filterList)
inlineprivate
128  {
129  final List<AuthenticationFilterWithParameters> tmpAuthenticationFilterWithParameters = new ArrayList<AuthenticationFilterWithParameters>();
130 
131  if (!this.enabled || p_filterList == null) {
132  return tmpAuthenticationFilterWithParameters;
133  }
134 
135  for (BaseFilter authenticationFilter : p_filterList) {
136  if (Boolean.TRUE.equals(authenticationFilter.getBind()) && StringHelper.isEmpty(authenticationFilter.getBindPasswordAttribute())) {
137  log.error("Skipping authentication filter:\n '{}'\n. It should contains not empty bind-password-attribute attribute. ", authenticationFilter);
138  continue;
139  }
140 
141  List<String> variableNames = new ArrayList<String>();
142  List<BaseAuthFilterService.IndexedParameter> indexedParameters = new ArrayList<BaseAuthFilterService.IndexedParameter>();
143 
144  Matcher matcher = BaseAuthFilterService.PARAM_VALUE_PATTERN.matcher(authenticationFilter.getFilter());
145  while (matcher.find()) {
146  String paramName = normalizeAttributeName(matcher.group(1));
147  String paramIndex = matcher.group(2);
148 
149  variableNames.add(paramName);
150  indexedParameters.add(new BaseAuthFilterService.IndexedParameter(paramName, paramIndex));
151  }
152 
153  AuthenticationFilterWithParameters tmpAutheticationFilterWithParameter = new AuthenticationFilterWithParameters(authenticationFilter, variableNames, indexedParameters);
154  tmpAuthenticationFilterWithParameters.add(tmpAutheticationFilterWithParameter);
155 
156  log.debug("Authentication filter with parameters: '{}'. ", tmpAutheticationFilterWithParameter);
157  }
158 
159  return tmpAuthenticationFilterWithParameters;
160  }
boolean enabled
Definition: BaseAuthFilterService.java:43
static String normalizeAttributeName(String attributeName)
Definition: BaseAuthFilterService.java:275
Logger log
Definition: BaseAuthFilterService.java:39

◆ processAuthenticationFilter()

abstract String org.xdi.oxauth.service.BaseAuthFilterService.processAuthenticationFilter ( AuthenticationFilterWithParameters  p_allowed,
Map<?, ?>  p_attributeValues 
)
abstract

◆ processAuthenticationFilters()

String org.xdi.oxauth.service.BaseAuthFilterService.processAuthenticationFilters ( Map<?, ?>  attributeValues)
inline
234  {
235  if (attributeValues == null) {
236  return null;
237  }
238 
239  final List<AuthenticationFilterWithParameters> allowedList = filterAttributes ?
240  getAllowedAuthenticationFilters(attributeValues.keySet(), getFilterWithParameters()) :
242 
243  for (AuthenticationFilterWithParameters allowed : allowedList) {
244  String resultDn = processAuthenticationFilter(allowed, attributeValues);
245  if (StringHelper.isNotEmpty(resultDn)) {
246  return resultDn;
247  }
248  }
249 
250  return null;
251  }
static List< AuthenticationFilterWithParameters > getAllowedAuthenticationFilters(Collection<?> attributeNames, List< AuthenticationFilterWithParameters > p_filterList)
Definition: BaseAuthFilterService.java:162
boolean filterAttributes
Definition: BaseAuthFilterService.java:44
abstract String processAuthenticationFilter(AuthenticationFilterWithParameters p_allowed, Map<?, ?> p_attributeValues)
List< AuthenticationFilterWithParameters > getFilterWithParameters()
Definition: BaseAuthFilterService.java:255

◆ setEnabled()

void org.xdi.oxauth.service.BaseAuthFilterService.setEnabled ( boolean  p_enabled)
inline
263  {
264  enabled = p_enabled;
265  }
boolean enabled
Definition: BaseAuthFilterService.java:43

◆ setFilterAttributes()

void org.xdi.oxauth.service.BaseAuthFilterService.setFilterAttributes ( boolean  p_filterAttributes)
inline
271  {
272  filterAttributes = p_filterAttributes;
273  }
boolean filterAttributes
Definition: BaseAuthFilterService.java:44

メンバ詳解

◆ enabled

boolean org.xdi.oxauth.service.BaseAuthFilterService.enabled
private

◆ filterAttributes

boolean org.xdi.oxauth.service.BaseAuthFilterService.filterAttributes = true
private

◆ filterWithParameters

List<AuthenticationFilterWithParameters> org.xdi.oxauth.service.BaseAuthFilterService.filterWithParameters
private

◆ log

Logger org.xdi.oxauth.service.BaseAuthFilterService.log
protected

◆ PARAM_VALUE_PATTERN

final Pattern org.xdi.oxauth.service.BaseAuthFilterService.PARAM_VALUE_PATTERN = Pattern.compile("([\\w]+)[\\s]*\\=[\\*\\s]*(\\{[\\s]*[\\d]+[\\s]*\\})[\\*\\s]*")
static

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