Skip to content
This repository was archived by the owner on Feb 19, 2025. It is now read-only.

Commit 5ab92db

Browse files
authored
Merge pull request #408 from UMD-ARLIS/ext-auth
Ext auth
2 parents 8bd9b61 + 24a5ccd commit 5ab92db

File tree

8 files changed

+70
-54
lines changed

8 files changed

+70
-54
lines changed

build/UserALEWebExtension/background.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1128,6 +1128,7 @@ var defaultConfig = {
11281128
useraleConfig: {
11291129
url: 'http://localhost:8000',
11301130
userId: 'pluginUser',
1131+
authHeader: null,
11311132
toolName: 'useralePlugin',
11321133
version: version
11331134
}
@@ -1144,15 +1145,15 @@ function dispatchTabMessage(message) {
11441145
}
11451146
browser.runtime.onMessage.addListener(function (message) {
11461147
switch (message.type) {
1147-
case CONFIG_CHANGE:
1148-
options(message.payload);
1149-
dispatchTabMessage(message);
1150-
break;
1151-
11521148
// Handles logs rerouted from content and option scripts
11531149
case ADD_LOG:
11541150
log(message.payload);
11551151
break;
1152+
case CONFIG_CHANGE:
1153+
console.log(message);
1154+
options(message.payload);
1155+
dispatchTabMessage(message);
1156+
break;
11561157
default:
11571158
console.log('got unknown message type ', message);
11581159
}

build/UserALEWebExtension/content.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1100,7 +1100,6 @@ function options(newConfig) {
11001100
// browser is defined in firefox, but chrome uses the 'chrome' global.
11011101
var browser = browser || chrome;
11021102
function rerouteLog(log) {
1103-
console.log(log);
11041103
browser.runtime.sendMessage({
11051104
type: ADD_LOG,
11061105
payload: log

build/UserALEWebExtension/options.js

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,7 +1100,6 @@ function options(newConfig) {
11001100
// browser is defined in firefox, but chrome uses the 'chrome' global.
11011101
var browser = browser || chrome;
11021102
function rerouteLog(log) {
1103-
console.log(log);
11041103
browser.runtime.sendMessage({
11051104
type: ADD_LOG,
11061105
payload: log
@@ -1130,33 +1129,40 @@ function rerouteLog(log) {
11301129
addCallbacks({
11311130
reroute: rerouteLog
11321131
});
1133-
function setConfig(e) {
1132+
function setConfig() {
1133+
var config = {
1134+
url: document.getElementById("url").value,
1135+
userId: document.getElementById("user").value,
1136+
toolName: document.getElementById("tool").value,
1137+
version: document.getElementById("version").value
1138+
};
1139+
1140+
// Set a basic auth header if given credentials.
1141+
var password = document.getElementById("password").value;
1142+
if (config.userId && password) {
1143+
config.authHeader = "Basic " + btoa("".concat(config.userId, ":").concat(password));
1144+
}
11341145
browser.storage.local.set({
1135-
useraleConfig: {
1136-
url: document.getElementById("url").value,
1137-
userId: document.getElementById("user").value,
1138-
toolName: document.getElementById("tool").value,
1139-
version: document.getElementById("version").value
1140-
}
1146+
useraleConfig: config
11411147
}, function () {
1142-
getConfig();
1148+
options(config);
1149+
browser.runtime.sendMessage({
1150+
type: CONFIG_CHANGE,
1151+
payload: config
1152+
});
11431153
});
11441154
}
11451155
function getConfig() {
11461156
browser.storage.local.get("useraleConfig", function (res) {
11471157
var config = res.useraleConfig;
1158+
options(config);
11481159
document.getElementById("url").value = config.url;
11491160
document.getElementById("user").value = config.userId;
11501161
document.getElementById("tool").value = config.toolName;
11511162
document.getElementById("version").value = config.version;
1152-
options(config);
1153-
browser.runtime.sendMessage({
1154-
type: CONFIG_CHANGE,
1155-
payload: config
1156-
});
11571163
});
11581164
}
1159-
document.addEventListener('DOMContentLoaded', getConfig);
1165+
document.addEventListener("DOMContentLoaded", getConfig);
11601166
document.addEventListener("submit", setConfig);
11611167

11621168
/* eslint-enable */

build/UserALEWebExtension/optionsPage.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@
2525
<body>
2626
<h1>Options</h1>
2727
<form>
28-
<label>User ALE Server Host:</label>
28+
<label>Logging Endpoint URL:</label>
2929
<input id="url"/>
3030
<br/>
31-
32-
<label>User ALE Client Script:</label>
33-
<input id="clientScript"/>
34-
<br/>
3531

3632
<label>User:</label>
3733
<input id="user"/>
3834
<br/>
3935

36+
<label>Password:</label>
37+
<input type="password" id="password"/>
38+
<br/>
39+
4040
<label>Tool Name:</label>
4141
<input id="tool"/>
4242
<br/>

src/UserALEWebExtension/background.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import { browser } from './globals.js';
2727
const defaultConfig = {useraleConfig: {
2828
url: 'http://localhost:8000',
2929
userId: 'pluginUser',
30+
authHeader: null,
3031
toolName: 'useralePlugin',
3132
version: userale.version,
3233
}};
@@ -45,16 +46,17 @@ function dispatchTabMessage(message) {
4546

4647
browser.runtime.onMessage.addListener(function (message) {
4748
switch (message.type) {
48-
case MessageTypes.CONFIG_CHANGE:
49-
userale.options(message.payload)
50-
dispatchTabMessage(message);
51-
break;
52-
5349
// Handles logs rerouted from content and option scripts
5450
case MessageTypes.ADD_LOG:
5551
userale.log(message.payload);
5652
break;
5753

54+
case MessageTypes.CONFIG_CHANGE:
55+
console.log(message);
56+
userale.options(message.payload);
57+
dispatchTabMessage(message);
58+
break;
59+
5860
default:
5961
console.log('got unknown message type ', message);
6062
}

src/UserALEWebExtension/messageTypes.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
var prefix = 'USERALE_';
18+
const prefix = 'USERALE_';
1919

20-
export var CONFIG_CHANGE = prefix + 'CONFIG_CHANGE';
21-
export var ADD_LOG = prefix + 'ADD_LOG';
20+
export const CONFIG_CHANGE = prefix + 'CONFIG_CHANGE';
21+
export const ADD_LOG = prefix + 'ADD_LOG';

src/UserALEWebExtension/options.js

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,34 +22,42 @@ import { rerouteLog, browser } from './globals.js';
2222

2323
userale.addCallbacks({reroute: rerouteLog});
2424

25-
function setConfig(e) {
26-
browser.storage.local.set(
27-
{useraleConfig: {
28-
url: document.getElementById("url").value,
29-
userId: document.getElementById("user").value,
30-
toolName: document.getElementById("tool").value,
31-
version: document.getElementById("version").value
32-
}},
33-
() => {getConfig()}
34-
);
25+
// TODO: Warn users when setting credentials with unsecured connection.
26+
const mitmWarning = "Setting credentials with http will expose you to a MITM attack. Are you sure you want to continue?";
27+
28+
function setConfig() {
29+
let config = {
30+
url: document.getElementById("url").value,
31+
userId: document.getElementById("user").value,
32+
toolName: document.getElementById("tool").value,
33+
version: document.getElementById("version").value
34+
};
35+
36+
// Set a basic auth header if given credentials.
37+
const password = document.getElementById("password").value;
38+
if(config.userId && password) {
39+
config.authHeader = "Basic " + btoa(`${config.userId}:${password}`);
40+
}
41+
42+
browser.storage.local.set({useraleConfig: config}, () => {
43+
userale.options(config);
44+
browser.runtime.sendMessage({ type: MessageTypes.CONFIG_CHANGE, payload: config });
45+
});
3546
}
3647

3748
function getConfig() {
3849
browser.storage.local.get("useraleConfig", (res) => {
3950
let config = res.useraleConfig;
4051

52+
userale.options(config);
4153
document.getElementById("url").value = config.url;
4254
document.getElementById("user").value = config.userId;
4355
document.getElementById("tool").value = config.toolName;
4456
document.getElementById("version").value = config.version;
45-
46-
userale.options(config);
47-
browser.runtime.sendMessage({ type: MessageTypes.CONFIG_CHANGE, payload: config });
48-
4957
});
5058
}
5159

52-
document.addEventListener('DOMContentLoaded', getConfig);
60+
document.addEventListener("DOMContentLoaded", getConfig);
5361
document.addEventListener("submit", setConfig);
5462

5563
/* eslint-enable */

src/UserALEWebExtension/optionsPage.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@
2525
<body>
2626
<h1>Options</h1>
2727
<form>
28-
<label>User ALE Server Host:</label>
28+
<label>Logging Endpoint URL:</label>
2929
<input id="url"/>
3030
<br/>
31-
32-
<label>User ALE Client Script:</label>
33-
<input id="clientScript"/>
34-
<br/>
3531

3632
<label>User:</label>
3733
<input id="user"/>
3834
<br/>
3935

36+
<label>Password:</label>
37+
<input type="password" id="password"/>
38+
<br/>
39+
4040
<label>Tool Name:</label>
4141
<input id="tool"/>
4242
<br/>

0 commit comments

Comments
 (0)