gluu
静的公開メンバ関数 | 公開変数類 | 静的非公開メンバ関数 | 静的非公開変数類 | 全メンバ一覧
列挙 org.gluu.oxtrust.model.scim2.Validations 詳解
org.gluu.oxtrust.model.scim2.Validations 連携図
Collaboration graph

静的公開メンバ関数

 [static initializer]
 
static boolean apply (Validations validation, Object value)
 

公開変数類

 EMAIL
 
 PHONE
 
 PHOTO
 
 COUNTRY
 
 LOCALE
 

静的非公開メンバ関数

static boolean validateEmail (String val)
 
static boolean validateCountry (String val)
 
static boolean validateTimezone (String val)
 
static boolean validateURI (String val)
 
static boolean validateLocale (String val)
 

静的非公開変数類

static final Pattern EmailPattern
 
static Set< String > validCountries
 
static Set< String > validTimeZones
 

詳解

An enumeration of all possible (formatting) validations applicable to attributes of SCIM resources.

関数詳解

◆ [static initializer]()

org.gluu.oxtrust.model.scim2.Validations.[static initializer] ( )
inlinestatic

◆ apply()

static boolean org.gluu.oxtrust.model.scim2.Validations.apply ( Validations  validation,
Object  value 
)
inlinestatic

This method receives a validation "type" and the object upon which to perform the validation.

引数
validationAn enum constant that specifies which validation should be applied
valueA non-null object target of validation
戻り値
A boolean value (true/false) for success/failed validation.
38  {
39 
40  boolean pass=false;
41  switch (validation){
42  case EMAIL:
43  pass=validateEmail(value.toString());
44  //From spec: The value SHOULD be specified according to [RFC5321].
45  break;
46  case PHONE:
47  pass=true;
48  /*
49  From spec: The value SHOULD be specified according to the format defined in [RFC3966], e.g.,
50  'tel:+1-201-555-0123'.
51  IMPORTANT NOTE: Implementing this validation will rise compatibility problems in terms of data current customers
52  handle. More info at https://support.gluu.org/identity-management/5577/scim-address-validator-configurable-validators
53  */
54  break;
55  case PHOTO:
56  pass=validateURI(value.toString());
57  //From spec: A URI that is a uniform resource locator (as defined in Section 1.1.3 of [RFC3986])
58  break;
59  case COUNTRY:
60  pass=validateCountry(value.toString());
61  //From spec: When specified, the value MUST be in ISO 3166-1 "alpha-2" code format [ISO3166]
62  break;
63  /*
64  case X509:
65  pass=true;
66  //From spec: Each value contains exactly one DER-encoded X.509 certificate (see Section 4 of [RFC5280])
67  break;
68  */
69  case LOCALE:
70  pass=validateLocale(value.toString());
71  /*
72  From spec: A valid value is a language tag as defined in [RFC5646]. Computer languages are explicitly
73  excluded.
74  */
75  break;
76  case TIMEZONE:
77  pass=validateTimezone(value.toString());
78  /*
79  From spec: The User's time zone, in IANA Time Zone database format [RFC6557], also known as the "Olson"
80  time zone database format [Olson-TZ] (e.g., "America/Los_Angeles").
81  */
82  break;
83  }
84  return pass;
85 
86  }
PHOTO
Definition: Validations.java:18
static boolean validateCountry(String val)
Definition: Validations.java:92
PHONE
Definition: Validations.java:18
static boolean validateURI(String val)
Definition: Validations.java:100
LOCALE
Definition: Validations.java:18
static boolean validateLocale(String val)
Definition: Validations.java:113
COUNTRY
Definition: Validations.java:18
static boolean validateTimezone(String val)
Definition: Validations.java:96
EMAIL
Definition: Validations.java:18
static boolean validateEmail(String val)
Definition: Validations.java:88

◆ validateCountry()

static boolean org.gluu.oxtrust.model.scim2.Validations.validateCountry ( String  val)
inlinestaticprivate
92  {
93  return validCountries.contains(val.toUpperCase());
94  }
static Set< String > validCountries
Definition: Validations.java:24

◆ validateEmail()

static boolean org.gluu.oxtrust.model.scim2.Validations.validateEmail ( String  val)
inlinestaticprivate
88  {
89  return EmailPattern.matcher(val).matches();
90  }
static final Pattern EmailPattern
Definition: Validations.java:21

◆ validateLocale()

static boolean org.gluu.oxtrust.model.scim2.Validations.validateLocale ( String  val)
inlinestaticprivate
113  {
114 
115  val=val.replaceAll("_", "-");
116  //TODO: Uncomment the following try/catch when supporting java 1.7 or higher and delete the rest
117  /*
118  try{
119  new Locale.Builder().setLanguageTag(str);
120  return true;
121  }
122  catch (Exception e){
123  return false;
124  }
125  */
126 
127  //This is an approximate regex only (not very accurate), the official check is above
128  Pattern p=Pattern.compile("[a-z]{1,3}(-([A-Z]{2}|([A-z][a-z]{3})))?(-\\w{1,5})?");
129  return p.matcher(val).matches();
130 
131  }

◆ validateTimezone()

static boolean org.gluu.oxtrust.model.scim2.Validations.validateTimezone ( String  val)
inlinestaticprivate
96  {
97  return validTimeZones.contains(val);
98  }
static Set< String > validTimeZones
Definition: Validations.java:25

◆ validateURI()

static boolean org.gluu.oxtrust.model.scim2.Validations.validateURI ( String  val)
inlinestaticprivate
100  {
101 
102  boolean valid=true;
103  try {
104  new URI(val);
105  }
106  catch (Exception e){
107  valid=false;
108  }
109  return valid;
110 
111  }

メンバ詳解

◆ COUNTRY

org.gluu.oxtrust.model.scim2.Validations.COUNTRY

◆ EMAIL

org.gluu.oxtrust.model.scim2.Validations.EMAIL

◆ EmailPattern

static final Pattern org.gluu.oxtrust.model.scim2.Validations.EmailPattern
staticprivate
初期値:
= Pattern.compile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@" +
"[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")

◆ LOCALE

org.gluu.oxtrust.model.scim2.Validations.LOCALE

◆ PHONE

org.gluu.oxtrust.model.scim2.Validations.PHONE

◆ PHOTO

org.gluu.oxtrust.model.scim2.Validations.PHOTO

◆ validCountries

Set<String> org.gluu.oxtrust.model.scim2.Validations.validCountries
staticprivate

◆ validTimeZones

Set<String> org.gluu.oxtrust.model.scim2.Validations.validTimeZones
staticprivate

次のファイルからこの列挙についての詳解を抽出しました: