ILIAS
trunk Revision v11.0_alpha-1731-gff9cd7e2bd3
◀ ilDoc Overview
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
+
Variables
$
c
e
g
h
j
l
m
p
s
t
u
v
+
Enumerations
a
c
e
f
i
j
l
m
n
o
p
r
s
t
u
v
z
+
Enumerator
a
c
d
e
f
g
i
l
m
n
o
p
q
s
t
u
v
y
+
Data Structures
Data Structures
Data Structure Index
Class Hierarchy
+
Data Fields
+
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Ö
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Ö
Enumerations
Enumerator
+
Files
File List
+
Globals
+
All
$
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
z
+
Functions
a
b
c
d
e
f
g
h
i
m
n
p
r
s
t
u
v
+
Variables
$
a
c
e
g
h
i
m
n
o
p
r
s
t
u
v
z
Enumerations
Enumerator
Examples
•
All
Data Structures
Namespaces
Files
Functions
Variables
Enumerations
Enumerator
Modules
Pages
Init.php
Go to the documentation of this file.
1
<?php
2
19
declare(strict_types=1);
20
21
namespace
ILIAS\FileDelivery
;
22
23
use
ILIAS\FileDelivery\Delivery\StreamDelivery
;
24
use
ILIAS\DI\Container
;
25
use
ILIAS\FileDelivery\Setup\KeyRotationObjective
;
26
use
ILIAS\FileDelivery\Token\Signer\Key\Secret\SecretKey
;
27
use
ILIAS\FileDelivery\Token\DataSigner
;
28
use
ILIAS\FileDelivery\Token\Signer\Key\Secret\SecretKeyRotation
;
29
use
ILIAS\FileDelivery\Delivery\ResponseBuilder\XSendFileResponseBuilder
;
30
use
ILIAS\FileDelivery\Delivery\ResponseBuilder\PHPResponseBuilder
;
31
use
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder
;
32
use
ILIAS\FileDelivery\Setup\DeliveryMethodObjective
;
33
use
ILIAS\FileDelivery\Delivery\LegacyDelivery
;
34
use
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder
;
35
39
class
Init
40
{
41
public
static
function
init
(
Container
$c
): void
42
{
43
$c[
'file_delivery.response_builder'
] =
static
function
():
ResponseBuilder
{
44
$settings = (@include
DeliveryMethodObjective::PATH
()) ?? [];
45
46
return
match ($settings[
DeliveryMethodObjective::SETTINGS
] ??
null
) {
47
DeliveryMethodObjective::XACCEL
=>
new
XAccelResponseBuilder
(),
48
DeliveryMethodObjective::XSENDFILE
=>
new
XSendFileResponseBuilder
(),
49
default
=>
new
PHPResponseBuilder
(),
50
};
51
};
52
53
$c[
'file_delivery.fallback_response_builder'
] = (
static
fn():
ResponseBuilder
=>
new
PHPResponseBuilder
());
54
55
$c[
'file_delivery.data_signer'
] =
static
function
():
DataSigner
{
56
$keys =
array_map
(
static
fn(
string
$key):
SecretKey
=>
new
SecretKey
($key), (require
KeyRotationObjective::PATH
()) ?? []);
57
58
$current_key = array_shift($keys);
59
60
return
new
DataSigner
(
61
new
SecretKeyRotation
(
62
$current_key,
63
...$keys
64
)
65
);
66
};
67
68
$c[
'file_delivery.delivery'
] =
static
function
() use ($c):
StreamDelivery
{
69
// if http is not initialized, we need to do it here
70
if
(!$c->offsetExists(
'http'
)) {
71
$init_http = new \InitHttpServices();
72
$init_http->init($c);
73
}
74
75
return
new
StreamDelivery
(
76
$c[
'file_delivery.data_signer'
],
77
$c[
'http'
],
78
$c[
'file_delivery.response_builder'
],
79
$c[
'file_delivery.fallback_response_builder'
]
80
);
81
};
82
83
$c[
'file_delivery.legacy_delivery'
] =
static
function
() use ($c):
LegacyDelivery
{
84
// if http is not initialized, we need to do it here
85
if
(!$c->offsetExists(
'http'
)) {
86
$init_http = new \InitHttpServices();
87
$init_http->init($c);
88
}
89
90
return
new
LegacyDelivery
(
91
$c[
'http'
],
92
$c[
'file_delivery.response_builder'
],
93
$c[
'file_delivery.fallback_response_builder'
]
94
);
95
};
96
97
$c[
'file_delivery'
] = (
static
fn():
Services
=>
new
Services
(
98
$c[
'file_delivery.delivery'
],
99
$c[
'file_delivery.legacy_delivery'
],
100
$c[
'file_delivery.data_signer'
],
101
$c[
'http'
]
102
));
103
}
104
}
ILIAS\FileDelivery\Delivery\ResponseBuilder\PHPResponseBuilder
Definition:
PHPResponseBuilder.php:32
ILIAS\FileDelivery\Token\DataSigner
Definition:
DataSigner.php:46
array_map
ILIAS\FileDelivery\Delivery\ResponseBuilder\XAccelResponseBuilder
Definition:
XAccelResponseBuilder.php:30
ILIAS\Setup\Artifact\BuildArtifactObjective\PATH
static PATH()
Definition:
BuildArtifactObjective.php:40
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XSENDFILE
const XSENDFILE
Definition:
DeliveryMethodObjective.php:34
LegacyDelivery
ILIAS\FileDelivery\Init\init
static init(Container $c)
Definition:
Init.php:41
StreamDelivery
KeyRotationObjective
ILIAS\FileDelivery\Delivery\StreamDelivery
Definition:
StreamDelivery.php:37
ILIAS\FileDelivery\Delivery\ResponseBuilder\ResponseBuilder
Definition:
ResponseBuilder.php:30
$c
$c
Definition:
deliver.php:25
XSendFileResponseBuilder
SecretKeyRotation
ILIAS\DI\Container
Customizing of pimple-DIC for ILIAS.
Definition:
Container.php:35
Services
null
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
Definition:
shib_logout.php:142
DataSigner
Container
ILIAS\FileDelivery\Delivery\ResponseBuilder\XSendFileResponseBuilder
Definition:
XSendFileResponseBuilder.php:30
ILIAS\FileDelivery\Delivery\LegacyDelivery
Definition:
LegacyDelivery.php:28
ResponseBuilder
ILIAS\FileDelivery\Token\Signer\Key\Secret\SecretKey
Signatures are secured by the secret_key.
Definition:
SecretKey.php:39
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\XACCEL
const XACCEL
Definition:
DeliveryMethodObjective.php:35
ILIAS\FileDelivery\Setup\DeliveryMethodObjective\SETTINGS
const SETTINGS
Definition:
DeliveryMethodObjective.php:33
SecretKey
DeliveryMethodObjective
XAccelResponseBuilder
PHPResponseBuilder
ILIAS\FileDelivery
Definition:
Delivery.php:21
ILIAS\FileDelivery\Token\Signer\Key\Secret\SecretKeyRotation
Key rotation can provide an extra layer of mitigation against an attacker discovering a secret key...
Definition:
SecretKeyRotation.php:41
ILIAS\FileDelivery\Init
Definition:
Init.php:39
components
ILIAS
FileDelivery
src
Init.php
Generated on Mon Apr 7 2025 23:03:11 for ILIAS by
1.8.13 (using
Doxyfile
)