keycloak
公開メンバ関数 | 静的公開メンバ関数 | 公開変数類 | 静的公開変数類 | 限定公開変数類 | 非公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken クラス
org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken の継承関係図
Inheritance graph
org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken 連携図
Collaboration graph

公開メンバ関数

 IdpVerifyAccountLinkActionToken (String userId, int absoluteExpirationInSecs, String compoundAuthenticationSessionId, String identityProviderUsername, String identityProviderAlias, String clientId)
 
String getIdentityProviderUsername ()
 
void setIdentityProviderUsername (String identityProviderUsername)
 
String getIdentityProviderAlias ()
 
void setIdentityProviderAlias (String identityProviderAlias)
 
String getOriginalCompoundAuthenticationSessionId ()
 
void setOriginalCompoundAuthenticationSessionId (String originalCompoundAuthenticationSessionId)
 
String getCompoundAuthenticationSessionId ()
 
final void setCompoundAuthenticationSessionId (String authenticationSessionId)
 
Map< String, String > getNotes ()
 
String getNote (String name)
 
final String setNote (String name, String value)
 
final String removeNote (String name)
 
String serialize (KeycloakSession session, RealmModel realm, UriInfo uri)
 
String getIssuer ()
 
String getUserId ()
 
String getActionId ()
 
UUID getActionVerificationNonce ()
 
JsonWebToken id (String id)
 
JsonWebToken expiration (int expiration)
 
JsonWebToken notBefore (int notBefore)
 
JsonWebToken issuedAt (int issuedAt)
 
JsonWebToken issuer (String issuer)
 
JsonWebToken audience (String... audience)
 
JsonWebToken subject (String subject)
 
JsonWebToken type (String type)
 
JsonWebToken issuedFor (String issuedFor)
 
String getId ()
 
int getExpiration ()
 
int getExpiration ()
 
boolean isExpired ()
 
int getNotBefore ()
 
boolean isNotBefore (int allowedTimeSkew)
 
boolean isActive ()
 
boolean isActive (int allowedTimeSkew)
 
int getIssuedAt ()
 
JsonWebToken issuedNow ()
 
String [] getAudience ()
 
boolean hasAudience (String audience)
 
JsonWebToken addAudience (String audience)
 
String getSubject ()
 
void setSubject (String subject)
 
String getType ()
 
String getIssuedFor ()
 
Map< String, Object > getOtherClaims ()
 
void setOtherClaims (String name, Object value)
 
TokenCategory getCategory ()
 
default String serializeKey ()
 

静的公開メンバ関数

static DefaultActionTokenKey from (String serializedKey)
 

公開変数類

String issuedFor
 

静的公開変数類

static final String TOKEN_TYPE = "idp-verify-account-via-email"
 
static final String JSON_FIELD_AUTHENTICATION_SESSION_ID = "asid"
 
static final Predicate< DefaultActionTokenKeyACTION_TOKEN_BASIC_CHECKS
 
static final String ACTION_TOKEN_USER_ID = "ACTION_TOKEN_USER"
 
static final String JSON_FIELD_ACTION_VERIFICATION_NONCE = "nonce"
 

限定公開変数類

String id
 
int expiration
 
int notBefore
 
int issuedAt
 
String issuer
 
String [] audience
 
String subject
 
String type
 
Map< String, Object > otherClaims = new HashMap<>()
 

非公開メンバ関数

 IdpVerifyAccountLinkActionToken ()
 

非公開変数類

String identityProviderUsername
 
String identityProviderAlias
 
String originalAuthenticationSessionId
 

静的非公開変数類

static final String JSON_FIELD_IDENTITY_PROVIDER_USERNAME = "idpu"
 
static final String JSON_FIELD_IDENTITY_PROVIDER_ALIAS = "idpa"
 
static final String JSON_FIELD_ORIGINAL_AUTHENTICATION_SESSION_ID = "oasid"
 

詳解

Representation of a token that represents a time-limited verify e-mail action.

著者
hmlnarik

構築子と解体子

◆ IdpVerifyAccountLinkActionToken() [1/2]

org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.IdpVerifyAccountLinkActionToken ( String  userId,
int  absoluteExpirationInSecs,
String  compoundAuthenticationSessionId,
String  identityProviderUsername,
String  identityProviderAlias,
String  clientId 
)
inline
46  {
47  super(userId, TOKEN_TYPE, absoluteExpirationInSecs, null, compoundAuthenticationSessionId);
50  this.issuedFor = clientId;
51  }
static final String TOKEN_TYPE
Definition: IdpVerifyAccountLinkActionToken.java:29
String identityProviderAlias
Definition: IdpVerifyAccountLinkActionToken.java:39
String issuedFor
Definition: JsonWebToken.java:61
String identityProviderUsername
Definition: IdpVerifyAccountLinkActionToken.java:36

◆ IdpVerifyAccountLinkActionToken() [2/2]

org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.IdpVerifyAccountLinkActionToken ( )
inlineprivate
53  {
54  }

関数詳解

◆ addAudience()

JsonWebToken org.keycloak.representations.JsonWebToken.addAudience ( String  audience)
inlineinherited
165  {
166  if (this.audience == null) {
167  this.audience = new String[] { audience };
168  } else {
169  // Check if audience is already there
170  for (String aud : this.audience) {
171  if (audience.equals(aud)) {
172  return this;
173  }
174  }
175 
176  String[] newAudience = Arrays.copyOf(this.audience, this.audience.length + 1);
177  newAudience[this.audience.length] = audience;
178  this.audience = newAudience;
179  }
180  return this;
181  }
String [] audience
Definition: JsonWebToken.java:55

◆ audience()

JsonWebToken org.keycloak.representations.JsonWebToken.audience ( String...  audience)
inlineinherited
160  {
161  this.audience = audience;
162  return this;
163  }
String [] audience
Definition: JsonWebToken.java:55

◆ expiration()

JsonWebToken org.keycloak.representations.JsonWebToken.expiration ( int  expiration)
inlineinherited
78  {
79  this.expiration = expiration;
80  return this;
81  }
int expiration
Definition: JsonWebToken.java:45

◆ from()

static DefaultActionTokenKey org.keycloak.authentication.actiontoken.DefaultActionTokenKey.from ( String  serializedKey)
inlinestaticinherited
74  {
75  if (serializedKey == null) {
76  return null;
77  }
78  String[] parsed = DOT.split(serializedKey, 4);
79  if (parsed.length != 4) {
80  return null;
81  }
82 
83  String userId;
84  try {
85  userId = new String(Base64.decode(parsed[0]), StandardCharsets.UTF_8);
86  } catch (IOException ex) {
87  userId = parsed[0];
88  }
89  return new DefaultActionTokenKey(userId, parsed[3], Integer.parseInt(parsed[1]), UUID.fromString(parsed[2]));
90  }
DefaultActionTokenKey()
Definition: DefaultActionTokenKey.java:45
static final Pattern DOT
Definition: DefaultActionTokenKey.java:72

◆ getActionId()

String org.keycloak.authentication.actiontoken.DefaultActionTokenKey.getActionId ( )
inlineinherited

org.keycloak.models.ActionTokenKeyModelを実装しています。

63  {
64  return getType();
65  }
String getType()
Definition: JsonWebToken.java:196

◆ getActionVerificationNonce()

UUID org.keycloak.authentication.actiontoken.DefaultActionTokenKey.getActionVerificationNonce ( )
inlineinherited

org.keycloak.models.ActionTokenKeyModelを実装しています。

68  {
70  }
UUID actionVerificationNonce
Definition: DefaultActionTokenKey.java:43

◆ getAudience()

String [] org.keycloak.representations.JsonWebToken.getAudience ( )
inlineinherited
146  {
147  return audience;
148  }
String [] audience
Definition: JsonWebToken.java:55

◆ getCategory()

TokenCategory org.keycloak.representations.JsonWebToken.getCategory ( )
inlineinherited

org.keycloak.Tokenを実装しています。

235  {
236  return TokenCategory.INTERNAL;
237  }

◆ getCompoundAuthenticationSessionId()

String org.keycloak.authentication.actiontoken.DefaultActionToken.getCompoundAuthenticationSessionId ( )
inlineinherited
80  {
82  }
static final String JSON_FIELD_AUTHENTICATION_SESSION_ID
Definition: DefaultActionToken.java:39
Map< String, Object > getOtherClaims()
Definition: JsonWebToken.java:225

◆ getExpiration() [1/2]

int org.keycloak.models.ActionTokenKeyModel.getExpiration ( )
inherited

Returns absolute number of seconds since the epoch in UTC timezone when the token expires.

◆ getExpiration() [2/2]

int org.keycloak.representations.JsonWebToken.getExpiration ( )
inlineinherited
74  {
75  return expiration;
76  }
int expiration
Definition: JsonWebToken.java:45

◆ getId()

String org.keycloak.representations.JsonWebToken.getId ( )
inlineinherited
64  {
65  return id;
66  }
String id
Definition: JsonWebToken.java:43

◆ getIdentityProviderAlias()

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.getIdentityProviderAlias ( )
inline
64  {
65  return identityProviderAlias;
66  }
String identityProviderAlias
Definition: IdpVerifyAccountLinkActionToken.java:39

◆ getIdentityProviderUsername()

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.getIdentityProviderUsername ( )
inline
56  {
58  }
String identityProviderUsername
Definition: IdpVerifyAccountLinkActionToken.java:36

◆ getIssuedAt()

int org.keycloak.representations.JsonWebToken.getIssuedAt ( )
inlineinherited
117  {
118  return issuedAt;
119  }
int issuedAt
Definition: JsonWebToken.java:49

◆ getIssuedFor()

String org.keycloak.representations.JsonWebToken.getIssuedFor ( )
inlineinherited

OAuth client the token was issued for.

戻り値
210  {
211  return issuedFor;
212  }
String issuedFor
Definition: JsonWebToken.java:61

◆ getIssuer()

String org.keycloak.representations.JsonWebToken.getIssuer ( )
inlineinherited
136  {
137  return issuer;
138  }
String issuer
Definition: JsonWebToken.java:51

◆ getNotBefore()

int org.keycloak.representations.JsonWebToken.getNotBefore ( )
inlineinherited
88  {
89  return notBefore;
90  }
int notBefore
Definition: JsonWebToken.java:47

◆ getNote()

String org.keycloak.authentication.actiontoken.DefaultActionToken.getNote ( String  name)
inlineinherited

org.keycloak.models.ActionTokenValueModelを実装しています。

100  {
101  Object res = getOtherClaims().get(name);
102  return res instanceof String ? (String) res : null;
103  }
Map< String, Object > getOtherClaims()
Definition: JsonWebToken.java:225

◆ getNotes()

Map<String, String> org.keycloak.authentication.actiontoken.DefaultActionToken.getNotes ( )
inlineinherited

org.keycloak.models.ActionTokenValueModelを実装しています。

91  {
92  Map<String, String> res = new HashMap<>();
93  if (getCompoundAuthenticationSessionId() != null) {
95  }
96  return res;
97  }
static final String JSON_FIELD_AUTHENTICATION_SESSION_ID
Definition: DefaultActionToken.java:39
String getCompoundAuthenticationSessionId()
Definition: DefaultActionToken.java:80

◆ getOriginalCompoundAuthenticationSessionId()

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.getOriginalCompoundAuthenticationSessionId ( )
inline
72  {
74  }
String originalAuthenticationSessionId
Definition: IdpVerifyAccountLinkActionToken.java:42

◆ getOtherClaims()

Map<String, Object> org.keycloak.representations.JsonWebToken.getOtherClaims ( )
inlineinherited

This is a map of any other claims and data that might be in the IDToken. Could be custom claims set up by the auth server

戻り値
225  {
226  return otherClaims;
227  }
Map< String, Object > otherClaims
Definition: JsonWebToken.java:62

◆ getSubject()

String org.keycloak.representations.JsonWebToken.getSubject ( )
inlineinherited
183  {
184  return subject;
185  }
String subject
Definition: JsonWebToken.java:57

◆ getType()

String org.keycloak.representations.JsonWebToken.getType ( )
inlineinherited
196  {
197  return type;
198  }
String type
Definition: JsonWebToken.java:59

◆ getUserId()

String org.keycloak.authentication.actiontoken.DefaultActionTokenKey.getUserId ( )
inlineinherited

org.keycloak.models.ActionTokenKeyModelを実装しています。

57  {
58  return getSubject();
59  }
String getSubject()
Definition: JsonWebToken.java:183

◆ hasAudience()

boolean org.keycloak.representations.JsonWebToken.hasAudience ( String  audience)
inlineinherited
150  {
151  if (this.audience == null) return false;
152  for (String a : this.audience) {
153  if (a.equals(audience)) {
154  return true;
155  }
156  }
157  return false;
158  }
String [] audience
Definition: JsonWebToken.java:55

◆ id()

JsonWebToken org.keycloak.representations.JsonWebToken.id ( String  id)
inlineinherited
68  {
69  this.id = id;
70  return this;
71  }
String id
Definition: JsonWebToken.java:43

◆ isActive() [1/2]

boolean org.keycloak.representations.JsonWebToken.isActive ( )
inlineinherited

Tests that the token is not expired and is not-before.

戻り値
108  {
109  return isActive(0);
110  }
boolean isActive()
Definition: JsonWebToken.java:108

◆ isActive() [2/2]

boolean org.keycloak.representations.JsonWebToken.isActive ( int  allowedTimeSkew)
inlineinherited
113  {
114  return (!isExpired() || expiration == 0) && (isNotBefore(allowedTimeSkew) || notBefore == 0);
115  }
int notBefore
Definition: JsonWebToken.java:47
int expiration
Definition: JsonWebToken.java:45
boolean isNotBefore(int allowedTimeSkew)
Definition: JsonWebToken.java:98
boolean isExpired()
Definition: JsonWebToken.java:84

◆ isExpired()

boolean org.keycloak.representations.JsonWebToken.isExpired ( )
inlineinherited
84  {
85  return Time.currentTime() > expiration;
86  }
int expiration
Definition: JsonWebToken.java:45

◆ isNotBefore()

boolean org.keycloak.representations.JsonWebToken.isNotBefore ( int  allowedTimeSkew)
inlineinherited
98  {
99  return Time.currentTime() + allowedTimeSkew >= notBefore;
100  }
int notBefore
Definition: JsonWebToken.java:47

◆ issuedAt()

JsonWebToken org.keycloak.representations.JsonWebToken.issuedAt ( int  issuedAt)
inlineinherited
130  {
131  this.issuedAt = issuedAt;
132  return this;
133  }
int issuedAt
Definition: JsonWebToken.java:49

◆ issuedFor()

JsonWebToken org.keycloak.representations.JsonWebToken.issuedFor ( String  issuedFor)
inlineinherited
214  {
215  this.issuedFor = issuedFor;
216  return this;
217  }
String issuedFor
Definition: JsonWebToken.java:61

◆ issuedNow()

JsonWebToken org.keycloak.representations.JsonWebToken.issuedNow ( )
inlineinherited

Set issuedAt to the current time

125  {
126  issuedAt = Time.currentTime();
127  return this;
128  }
int issuedAt
Definition: JsonWebToken.java:49

◆ issuer()

JsonWebToken org.keycloak.representations.JsonWebToken.issuer ( String  issuer)
inlineinherited
140  {
141  this.issuer = issuer;
142  return this;
143  }
String issuer
Definition: JsonWebToken.java:51

◆ notBefore()

JsonWebToken org.keycloak.representations.JsonWebToken.notBefore ( int  notBefore)
inlineinherited
92  {
93  this.notBefore = notBefore;
94  return this;
95  }
int notBefore
Definition: JsonWebToken.java:47

◆ removeNote()

final String org.keycloak.authentication.actiontoken.DefaultActionToken.removeNote ( String  name)
inlineinherited

Removes given note, and returns original value (or

null

when no value was present)

戻り値
see description
120  {
121  Object res = getOtherClaims().remove(name);
122  return res instanceof String ? (String) res : null;
123  }
Map< String, Object > getOtherClaims()
Definition: JsonWebToken.java:225

◆ serialize()

String org.keycloak.authentication.actiontoken.DefaultActionToken.serialize ( KeycloakSession  session,
RealmModel  realm,
UriInfo  uri 
)
inlineinherited

Updates the following fields and serializes this token into a signed JWT. The list of updated fields follows:

  • id
    : random nonce
  • : Current time
  • : URI of the given realm
  • : URI of the given realm (same as issuer)
引数
session
realm
uri
戻り値
139  {
140  String issuerUri = getIssuer(realm, uri);
141 
142  this
143  .issuedAt(Time.currentTime())
144  .id(getActionVerificationNonce().toString())
145  .issuer(issuerUri)
146  .audience(issuerUri);
147 
148  return session.tokens().encode(this);
149  }
String encode(Token token)
UUID getActionVerificationNonce()
Definition: DefaultActionTokenKey.java:68
String getIssuer()
Definition: JsonWebToken.java:136
String issuer
Definition: JsonWebToken.java:51

◆ serializeKey()

default String org.keycloak.models.ActionTokenKeyModel.serializeKey ( )
inlineinherited
49  {
50  String userId = getUserId();
51  String encodedUserId = userId == null ? "" : Base64.encodeBytes(userId.getBytes(StandardCharsets.UTF_8));
52  return String.format("%s.%d.%s.%s", encodedUserId, getExpiration(), getActionVerificationNonce(), getActionId());
53  }

◆ setCompoundAuthenticationSessionId()

final void org.keycloak.authentication.actiontoken.DefaultActionToken.setCompoundAuthenticationSessionId ( String  authenticationSessionId)
inlineinherited
85  {
86  setOtherClaims(JSON_FIELD_AUTHENTICATION_SESSION_ID, authenticationSessionId);
87  }
static final String JSON_FIELD_AUTHENTICATION_SESSION_ID
Definition: DefaultActionToken.java:39
void setOtherClaims(String name, Object value)
Definition: JsonWebToken.java:230

◆ setIdentityProviderAlias()

void org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.setIdentityProviderAlias ( String  identityProviderAlias)
inline
68  {
70  }
String identityProviderAlias
Definition: IdpVerifyAccountLinkActionToken.java:39

◆ setIdentityProviderUsername()

void org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.setIdentityProviderUsername ( String  identityProviderUsername)
inline
60  {
62  }
String identityProviderUsername
Definition: IdpVerifyAccountLinkActionToken.java:36

◆ setNote()

final String org.keycloak.authentication.actiontoken.DefaultActionToken.setNote ( String  name,
String  value 
)
inlineinherited

Sets value of the given note

戻り値
original value (or
null
when no value was present)
109  {
110  Object res = value == null
111  ? getOtherClaims().remove(name)
112  : getOtherClaims().put(name, value);
113  return res instanceof String ? (String) res : null;
114  }
Map< String, Object > getOtherClaims()
Definition: JsonWebToken.java:225

◆ setOriginalCompoundAuthenticationSessionId()

void org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.setOriginalCompoundAuthenticationSessionId ( String  originalCompoundAuthenticationSessionId)
inline
76  {
77  this.originalAuthenticationSessionId = originalCompoundAuthenticationSessionId;
78  }
String originalAuthenticationSessionId
Definition: IdpVerifyAccountLinkActionToken.java:42

◆ setOtherClaims()

void org.keycloak.representations.JsonWebToken.setOtherClaims ( String  name,
Object  value 
)
inlineinherited
230  {
231  otherClaims.put(name, value);
232  }
Map< String, Object > otherClaims
Definition: JsonWebToken.java:62

◆ setSubject()

void org.keycloak.representations.JsonWebToken.setSubject ( String  subject)
inlineinherited
192  {
193  this.subject = subject;
194  }
String subject
Definition: JsonWebToken.java:57

◆ subject()

JsonWebToken org.keycloak.representations.JsonWebToken.subject ( String  subject)
inlineinherited
187  {
188  this.subject = subject;
189  return this;
190  }
String subject
Definition: JsonWebToken.java:57

◆ type()

JsonWebToken org.keycloak.representations.JsonWebToken.type ( String  type)
inlineinherited
200  {
201  this.type = type;
202  return this;
203  }
String type
Definition: JsonWebToken.java:59

メンバ詳解

◆ ACTION_TOKEN_BASIC_CHECKS

final Predicate<DefaultActionTokenKey> org.keycloak.authentication.actiontoken.DefaultActionToken.ACTION_TOKEN_BASIC_CHECKS
staticinherited
初期値:
= t -> {
if (t.getActionVerificationNonce() == null) {
throw new VerificationException("Nonce not present.");
}
return true;
}

◆ ACTION_TOKEN_USER_ID

final String org.keycloak.authentication.actiontoken.DefaultActionTokenKey.ACTION_TOKEN_USER_ID = "ACTION_TOKEN_USER"
staticinherited

The authenticationSession note with ID of the user authenticated via the action token

◆ audience

String [] org.keycloak.representations.JsonWebToken.audience
protectedinherited

◆ expiration

int org.keycloak.representations.JsonWebToken.expiration
protectedinherited

◆ id

String org.keycloak.representations.JsonWebToken.id
protectedinherited

◆ identityProviderAlias

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.identityProviderAlias
private

◆ identityProviderUsername

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.identityProviderUsername
private

◆ issuedAt

int org.keycloak.representations.JsonWebToken.issuedAt
protectedinherited

◆ issuedFor

String org.keycloak.representations.JsonWebToken.issuedFor
inherited

◆ issuer

String org.keycloak.representations.JsonWebToken.issuer
protectedinherited

◆ JSON_FIELD_ACTION_VERIFICATION_NONCE

final String org.keycloak.authentication.actiontoken.DefaultActionTokenKey.JSON_FIELD_ACTION_VERIFICATION_NONCE = "nonce"
staticinherited

◆ JSON_FIELD_AUTHENTICATION_SESSION_ID

final String org.keycloak.authentication.actiontoken.DefaultActionToken.JSON_FIELD_AUTHENTICATION_SESSION_ID = "asid"
staticinherited

◆ JSON_FIELD_IDENTITY_PROVIDER_ALIAS

final String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.JSON_FIELD_IDENTITY_PROVIDER_ALIAS = "idpa"
staticprivate

◆ JSON_FIELD_IDENTITY_PROVIDER_USERNAME

final String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.JSON_FIELD_IDENTITY_PROVIDER_USERNAME = "idpu"
staticprivate

◆ JSON_FIELD_ORIGINAL_AUTHENTICATION_SESSION_ID

final String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.JSON_FIELD_ORIGINAL_AUTHENTICATION_SESSION_ID = "oasid"
staticprivate

◆ notBefore

int org.keycloak.representations.JsonWebToken.notBefore
protectedinherited

◆ originalAuthenticationSessionId

String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.originalAuthenticationSessionId
private

◆ otherClaims

Map<String, Object> org.keycloak.representations.JsonWebToken.otherClaims = new HashMap<>()
protectedinherited

◆ subject

String org.keycloak.representations.JsonWebToken.subject
protectedinherited

◆ TOKEN_TYPE

final String org.keycloak.authentication.actiontoken.idpverifyemail.IdpVerifyAccountLinkActionToken.TOKEN_TYPE = "idp-verify-account-via-email"
static

◆ type

String org.keycloak.representations.JsonWebToken.type
protectedinherited

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