ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
SimpleSAMLConverter.php
Go to the documentation of this file.
1 <?php
2 
3 namespace SAML2\Configuration;
4 
6 
11 {
18  public static function convertToIdentityProvider(
19  SimpleSAML_Configuration $configuration,
20  $certificatePrefix = ''
21  ) {
22  $pluckedConfiguration = static::pluckConfiguration($configuration, $certificatePrefix);
23  static::enrichForDecryptionProvider($configuration, $pluckedConfiguration);
24  static::enrichForIdentityProvider($configuration, $pluckedConfiguration);
25 
26  return new IdentityProvider($pluckedConfiguration);
27  }
28 
35  public static function convertToServiceProvider(
36  SimpleSAML_Configuration $configuration,
37  $certificatePrefix = ''
38  ) {
39  $pluckedConfiguration = static::pluckConfiguration($configuration, $certificatePrefix);
40  static::enrichForServiceProvider($configuration, $pluckedConfiguration);
41  static::enrichForDecryptionProvider($configuration, $pluckedConfiguration);
42 
43  return new ServiceProvider($pluckedConfiguration);
44  }
45 
52  private static function pluckConfiguration(SimpleSAML_Configuration $configuration, $prefix = '')
53  {
54  $extracted = array();
55 
56  // ported from
57  // https://github.com/simplesamlphp/simplesamlphp/blob/3d735912342767d391297cc5e13272a76730aca0/lib/SimpleSAML/Configuration.php#L1092
58  if ($configuration->hasValue($prefix . 'keys')) {
59  $extracted['keys'] = $configuration->getArray($prefix . 'keys');
60  }
61 
62  // ported from
63  // https://github.com/simplesamlphp/simplesamlphp/blob/3d735912342767d391297cc5e13272a76730aca0/lib/SimpleSAML/Configuration.php#L1108
64  if ($configuration->hasValue($prefix . 'certData')) {
65  $extracted['certificateData'] = $configuration->getString($prefix . 'certData');
66  }
67 
68  // ported from
69  // https://github.com/simplesamlphp/simplesamlphp/blob/3d735912342767d391297cc5e13272a76730aca0/lib/SimpleSAML/Configuration.php#L1119
70  if ($configuration->hasValue($prefix . 'certificate')) {
71  $extracted['certificateData'] = $configuration->getString($prefix . 'certificate');
72  }
73 
74  // ported from
75  // https://github.com/simplesamlphp/simplesamlphp/blob/3d735912342767d391297cc5e13272a76730aca0/modules/saml/lib/Message.php#L161
76  if ($configuration->hasValue($prefix . 'certFingerprint')) {
77  $extracted['certificateFingerprint'] = $configuration->getArrayizeString('certFingerprint');
78  }
79 
80  $extracted['assertionEncryptionEnabled'] = $configuration->getBoolean('assertion.encryption', false);
81 
82  if ($configuration->has('sharedKey')) {
83  $extracted['sharedKey'] = $configuration->getString('sharedKey');
84  }
85 
86  return $extracted;
87  }
88 
89  private static function enrichForIdentityProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
90  {
91  $baseConfiguration['base64EncodedAttributes'] = $configuration->getBoolean('base64attributes', false);
92  $baseConfiguration['entityId'] = $configuration->getString('entityid');
93  }
94 
95  private static function enrichForServiceProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
96  {
97  $baseConfiguration['entityId'] = $configuration->getString('entityid');
98  }
99 
100  private static function enrichForDecryptionProvider(
101  SimpleSAML_Configuration $configuration,
102  array &$baseConfiguration
103  ) {
104  if ($configuration->has('sharedKey')) {
105  $baseConfiguration['sharedKey'] = $configuration->getString('sharedKey', null);
106  }
107 
108  if ($configuration->has('new_privatekey')) {
109  $baseConfiguration['privateKeys'][] = new PrivateKey(
110  $configuration->getString('new_privatekey'),
112  $configuration->getString('new_privatekey_pass', null)
113  );
114  }
115 
116  if ($configuration->getBoolean('assertion.encryption', false)) {
117  $baseConfiguration['privateKeys'][] = new PrivateKey(
118  $configuration->getString('privatekey'),
120  $configuration->getString('privatekey_pass', null)
121  );
122 
123  if ($configuration->has('encryption.blacklisted-algorithms')) {
124  $baseConfiguration['blacklistedEncryptionAlgorithms'] = $configuration
125  ->get('encryption.blacklisted-algorithms');
126  }
127  }
128  }
129 }
Basic configuration wrapper.
Basic Configuration Wrapper.
static enrichForIdentityProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
getArray($name, $default=self::REQUIRED_OPTION)
This function retrieves an array configuration option.
hasValue($name)
Check whether a key in the configuration exists or not.
static enrichForServiceProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
Backwards compatibility helper for SimpleSAMLphp.
static enrichForDecryptionProvider(SimpleSAML_Configuration $configuration, array &$baseConfiguration)
static pluckConfiguration(SimpleSAML_Configuration $configuration, $prefix='')
Configuration of a private key.
Definition: PrivateKey.php:10
getBoolean($name, $default=self::REQUIRED_OPTION)
This function retrieves a boolean configuration option.
getArrayizeString($name, $default=self::REQUIRED_OPTION)
This function retrieves a configuration option with a string or an array of strings.
getString($name, $default=self::REQUIRED_OPTION)
This function retrieves a string configuration option.
static convertToIdentityProvider(SimpleSAML_Configuration $configuration, $certificatePrefix='')
static convertToServiceProvider(SimpleSAML_Configuration $configuration, $certificatePrefix='')