Skip to content

Commit 153cb63

Browse files
committed
Only pass auth headers if httpContext's request/response are set
1 parent ab2a4ae commit 153cb63

File tree

1 file changed

+31
-29
lines changed

1 file changed

+31
-29
lines changed

helpers/mu/sparql.js

Lines changed: 31 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ const { SparqlClient, SPARQL } = SC2;
66

77
// builds a new sparqlClient
88
function newSparqlClient() {
9-
let options = {
10-
requestDefaults: {
11-
headers: {
12-
'mu-session-id': httpContext.get('request').get('mu-session-id'),
13-
'mu-call-id': httpContext.get('request').get('mu-call-id'),
14-
'mu-auth-allowed-groups': httpContext.get('request').get('mu-auth-allowed-groups') // groups of incoming request
15-
}
16-
}
17-
};
9+
let options = { requestDefaults: { headers: { } } };
10+
11+
if (httpContext.get('request')) {
12+
options.requestDefaults.headers['mu-session-id'] = httpContext.get('request').get('mu-session-id');
13+
options.requestDefaults.headers['mu-call-id'] = httpContext.get('request').get('mu-call-id');
14+
options.requestDefaults.headers['mu-auth-allowed-groups'] = httpContext.get('request').get('mu-auth-allowed-groups'); // groups of incoming request
15+
}
1816

19-
const allowedGroups = httpContext.get('response').get('mu-auth-allowed-groups'); // groups returned by a previous SPARQL query
20-
if (allowedGroups)
21-
options.requestDefaults.headers['mu-auth-allowed-groups'] = allowedGroups;
17+
if (httpContext.get('response')) {
18+
const allowedGroups = httpContext.get('response').get('mu-auth-allowed-groups'); // groups returned by a previous SPARQL query
19+
if (allowedGroups)
20+
options.requestDefaults.headers['mu-auth-allowed-groups'] = allowedGroups;
21+
}
2222

2323
console.log(`Headers set on SPARQL client: ${JSON.stringify(options)}`);
2424

@@ -34,24 +34,26 @@ function query( queryString ) {
3434
console.log(queryString);
3535
return newSparqlClient().query(queryString).executeRaw().then(response => {
3636

37-
// set mu-auth-allowed-groups on outgoing response
38-
const allowedGroups = response.headers['mu-auth-allowed-groups'];
39-
if (allowedGroups) {
40-
httpContext.get('response').setHeader('mu-auth-allowed-groups', allowedGroups);
41-
console.log(`Update mu-auth-allowed-groups to ${allowedGroups}`);
42-
} else {
43-
httpContext.get('response').removeHeader('mu-auth-allowed-groups');
44-
console.log('Remove mu-auth-allowed-groups');
45-
}
37+
if (httpContext.get('response')) {
38+
// set mu-auth-allowed-groups on outgoing response
39+
const allowedGroups = response.headers['mu-auth-allowed-groups'];
40+
if (allowedGroups) {
41+
httpContext.get('response').setHeader('mu-auth-allowed-groups', allowedGroups);
42+
console.log(`Update mu-auth-allowed-groups to ${allowedGroups}`);
43+
} else {
44+
httpContext.get('response').removeHeader('mu-auth-allowed-groups');
45+
console.log('Remove mu-auth-allowed-groups');
46+
}
4647

47-
// set mu-auth-used-groups on outgoing response
48-
const usedGroups = response.headers['mu-auth-used-groups'];
49-
if (usedGroups) {
50-
httpContext.get('response').setHeader('mu-auth-used-groups', usedGroups);
51-
console.log(`Update mu-auth-used-groups to ${usedGroups}`);
52-
} else {
53-
httpContext.get('response').removeHeader('mu-auth-used-groups');
54-
console.log('Remove mu-auth-used-groups');
48+
// set mu-auth-used-groups on outgoing response
49+
const usedGroups = response.headers['mu-auth-used-groups'];
50+
if (usedGroups) {
51+
httpContext.get('response').setHeader('mu-auth-used-groups', usedGroups);
52+
console.log(`Update mu-auth-used-groups to ${usedGroups}`);
53+
} else {
54+
httpContext.get('response').removeHeader('mu-auth-used-groups');
55+
console.log('Remove mu-auth-used-groups');
56+
}
5557
}
5658

5759
function maybeParseJSON(body) {

0 commit comments

Comments
 (0)