keycloak-service
クラス | 静的公開メンバ関数 | 静的公開変数類 | 静的非公開メンバ関数 | 全メンバ一覧
org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator クラス
org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator 連携図
Collaboration graph

クラス

class  TypedList
 

静的公開メンバ関数

static void validate (KeycloakSession session, ClientModel client, ProtocolMapperModel mapperModel) throws ProtocolMapperConfigException
 
static void validate (KeycloakSession session, String rootUrl, Set< String > redirectUris, String sectorIdentifierUri) throws ProtocolMapperConfigException
 

静的公開変数類

static final String PAIRWISE_MALFORMED_CLIENT_REDIRECT_URI = "pairwiseMalformedClientRedirectURI"
 
static final String PAIRWISE_CLIENT_REDIRECT_URIS_MISSING_HOST = "pairwiseClientRedirectURIsMissingHost"
 
static final String PAIRWISE_CLIENT_REDIRECT_URIS_MULTIPLE_HOSTS = "pairwiseClientRedirectURIsMultipleHosts"
 
static final String PAIRWISE_MALFORMED_SECTOR_IDENTIFIER_URI = "pairwiseMalformedSectorIdentifierURI"
 
static final String PAIRWISE_FAILED_TO_GET_REDIRECT_URIS = "pairwiseFailedToGetRedirectURIs"
 
static final String PAIRWISE_REDIRECT_URIS_MISMATCH = "pairwiseRedirectURIsMismatch"
 

静的非公開メンバ関数

static void validateClientRedirectUris (String rootUrl, Set< String > redirectUris) throws ProtocolMapperConfigException
 
static void validateSectorIdentifierUri (String sectorIdentifierUri) throws ProtocolMapperConfigException
 
static void validateSectorIdentifierUri (KeycloakSession session, String rootUrl, Set< String > redirectUris, String sectorIdentifierUri) throws ProtocolMapperConfigException
 
static Set< String > getSectorRedirects (KeycloakSession session, String sectorIdentifierUri) throws ProtocolMapperConfigException
 

詳解

著者
Martin Hardselius

関数詳解

◆ getSectorRedirects()

static Set<String> org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.getSectorRedirects ( KeycloakSession  session,
String  sectorIdentifierUri 
) throws ProtocolMapperConfigException
inlinestaticprivate
92  {
93  InputStream is = null;
94  try {
95  is = session.getProvider(HttpClientProvider.class).get(sectorIdentifierUri);
96  List<String> sectorRedirects = JsonSerialization.readValue(is, TypedList.class);
97  return new HashSet<>(sectorRedirects);
98  } catch (IOException e) {
99  throw new ProtocolMapperConfigException("Failed to get redirect URIs from the Sector Identifier URI.",
101  } finally {
102  if (is != null) {
103  try {
104  is.close();
105  } catch (IOException ignored) {
106  }
107  }
108  }
109  }
static final String PAIRWISE_FAILED_TO_GET_REDIRECT_URIS
Definition: PairwiseSubMapperValidator.java:29

◆ validate() [1/2]

static void org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.validate ( KeycloakSession  session,
ClientModel  client,
ProtocolMapperModel  mapperModel 
) throws ProtocolMapperConfigException
inlinestatic
32  {
33  String sectorIdentifierUri = PairwiseSubMapperHelper.getSectorIdentifierUri(mapperModel);
34  String rootUrl = client.getRootUrl();
35  Set<String> redirectUris = client.getRedirectUris();
36  validate(session, rootUrl, redirectUris, sectorIdentifierUri);
37  }
static void validate(KeycloakSession session, ClientModel client, ProtocolMapperModel mapperModel)
Definition: PairwiseSubMapperValidator.java:32

◆ validate() [2/2]

static void org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.validate ( KeycloakSession  session,
String  rootUrl,
Set< String >  redirectUris,
String  sectorIdentifierUri 
) throws ProtocolMapperConfigException
inlinestatic
39  {
40  if (sectorIdentifierUri == null || sectorIdentifierUri.isEmpty()) {
41  validateClientRedirectUris(rootUrl, redirectUris);
42  return;
43  }
44  validateSectorIdentifierUri(sectorIdentifierUri);
45  validateSectorIdentifierUri(session, rootUrl, redirectUris, sectorIdentifierUri);
46  }
static void validateClientRedirectUris(String rootUrl, Set< String > redirectUris)
Definition: PairwiseSubMapperValidator.java:48
static void validateSectorIdentifierUri(String sectorIdentifierUri)
Definition: PairwiseSubMapperValidator.java:70

◆ validateClientRedirectUris()

static void org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.validateClientRedirectUris ( String  rootUrl,
Set< String >  redirectUris 
) throws ProtocolMapperConfigException
inlinestaticprivate
48  {
49  Set<String> hosts = new HashSet<>();
50  for (String redirectUri : PairwiseSubMapperUtils.resolveValidRedirectUris(rootUrl, redirectUris)) {
51  try {
52  URI uri = new URI(redirectUri);
53  hosts.add(uri.getHost());
54  } catch (URISyntaxException e) {
55  throw new ProtocolMapperConfigException("Client contained an invalid redirect URI.",
57  }
58  }
59 
60  if (hosts.isEmpty()) {
61  throw new ProtocolMapperConfigException("Client redirect URIs must contain a valid host component.",
63  }
64 
65  if (hosts.size() > 1) {
66  throw new ProtocolMapperConfigException("Without a configured Sector Identifier URI, client redirect URIs must not contain multiple host components.", PAIRWISE_CLIENT_REDIRECT_URIS_MULTIPLE_HOSTS);
67  }
68  }
static final String PAIRWISE_MALFORMED_CLIENT_REDIRECT_URI
Definition: PairwiseSubMapperValidator.java:25
static final String PAIRWISE_CLIENT_REDIRECT_URIS_MULTIPLE_HOSTS
Definition: PairwiseSubMapperValidator.java:27
static final String PAIRWISE_CLIENT_REDIRECT_URIS_MISSING_HOST
Definition: PairwiseSubMapperValidator.java:26

◆ validateSectorIdentifierUri() [1/2]

static void org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.validateSectorIdentifierUri ( String  sectorIdentifierUri) throws ProtocolMapperConfigException
inlinestaticprivate
70  {
71  URI uri;
72  try {
73  uri = new URI(sectorIdentifierUri);
74  } catch (URISyntaxException e) {
75  throw new ProtocolMapperConfigException("Invalid Sector Identifier URI.",
77  }
78  if (uri.getScheme() == null || uri.getHost() == null) {
79  throw new ProtocolMapperConfigException("Invalid Sector Identifier URI.",
81  }
82  }
static final String PAIRWISE_MALFORMED_SECTOR_IDENTIFIER_URI
Definition: PairwiseSubMapperValidator.java:28

◆ validateSectorIdentifierUri() [2/2]

static void org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.validateSectorIdentifierUri ( KeycloakSession  session,
String  rootUrl,
Set< String >  redirectUris,
String  sectorIdentifierUri 
) throws ProtocolMapperConfigException
inlinestaticprivate
84  {
85  Set<String> sectorRedirects = getSectorRedirects(session, sectorIdentifierUri);
86  if (!PairwiseSubMapperUtils.matchesRedirects(rootUrl, redirectUris, sectorRedirects)) {
87  throw new ProtocolMapperConfigException("Client redirect URIs does not match redirect URIs fetched from the Sector Identifier URI.",
89  }
90  }
static final String PAIRWISE_REDIRECT_URIS_MISMATCH
Definition: PairwiseSubMapperValidator.java:30
static Set< String > getSectorRedirects(KeycloakSession session, String sectorIdentifierUri)
Definition: PairwiseSubMapperValidator.java:92

メンバ詳解

◆ PAIRWISE_CLIENT_REDIRECT_URIS_MISSING_HOST

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_CLIENT_REDIRECT_URIS_MISSING_HOST = "pairwiseClientRedirectURIsMissingHost"
static

◆ PAIRWISE_CLIENT_REDIRECT_URIS_MULTIPLE_HOSTS

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_CLIENT_REDIRECT_URIS_MULTIPLE_HOSTS = "pairwiseClientRedirectURIsMultipleHosts"
static

◆ PAIRWISE_FAILED_TO_GET_REDIRECT_URIS

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_FAILED_TO_GET_REDIRECT_URIS = "pairwiseFailedToGetRedirectURIs"
static

◆ PAIRWISE_MALFORMED_CLIENT_REDIRECT_URI

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_MALFORMED_CLIENT_REDIRECT_URI = "pairwiseMalformedClientRedirectURI"
static

◆ PAIRWISE_MALFORMED_SECTOR_IDENTIFIER_URI

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_MALFORMED_SECTOR_IDENTIFIER_URI = "pairwiseMalformedSectorIdentifierURI"
static

◆ PAIRWISE_REDIRECT_URIS_MISMATCH

final String org.keycloak.protocol.oidc.utils.PairwiseSubMapperValidator.PAIRWISE_REDIRECT_URIS_MISMATCH = "pairwiseRedirectURIsMismatch"
static

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