ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
SimpleSAMLConverter.php
Go to the documentation of this file.
1<?php
2
3namespace 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}
An exception for terminatinating execution or to throw for unit testing.
Basic configuration wrapper.
Configuration of a private key.
Definition: PrivateKey.php:11
Basic Configuration Wrapper.
Backwards compatibility helper for SimpleSAMLphp.
static convertToServiceProvider(SimpleSAML_Configuration $configuration, $certificatePrefix='')
static pluckConfiguration(SimpleSAML_Configuration $configuration, $prefix='')
static enrichForDecryptionProvider(SimpleSAML_Configuration $configuration, array &$baseConfiguration)
static convertToIdentityProvider(SimpleSAML_Configuration $configuration, $certificatePrefix='')
static enrichForIdentityProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
static enrichForServiceProvider(SimpleSAML_Configuration $configuration, &$baseConfiguration)
getString($name, $default=self::REQUIRED_OPTION)
This function retrieves a string configuration option.
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.
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.