mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
267cf2921d
Basically, the ACL configuration was very static and it was not allowed to remove 'any', 'groups', 'users'. The application crashed when those keys did not exist. After this fix, every key is optional and replaced by a default value for the app configuration to be complete and used by Authelia. Later, a configuration validator will be implemented to detect issues with configuration at startup.
162 lines
4.2 KiB
TypeScript
162 lines
4.2 KiB
TypeScript
import { ACLAdapter } from "../../../src/lib/configuration/adapters/ACLAdapter";
|
|
import Assert = require("assert");
|
|
|
|
describe("test ACL configuration adapter", function () {
|
|
|
|
describe("bad default_policy", function () {
|
|
it("should adapt a configuration missing default_policy", function () {
|
|
const userConfiguration: any = {
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
|
|
it("should adapt a configuration with bad default_policy value", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "anything", // it should be 'allow' or 'deny'
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
|
|
it("should adapt a configuration with bad default_policy type", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: {}, // it should be 'allow' or 'deny'
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("bad any", function () {
|
|
it("should adapt a configuration missing any key", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
groups: {},
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
|
|
it("should adapt a configuration with any not being an array", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
any: "abc",
|
|
groups: {},
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("bad groups", function () {
|
|
it("should adapt a configuration missing groups key", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
any: [],
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
|
|
it("should adapt configuration with groups being of wrong type", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: [],
|
|
users: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
});
|
|
|
|
describe("bad users", function () {
|
|
it("should adapt a configuration missing users key", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {}
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
|
|
it("should adapt a configuration with users being of wrong type", function () {
|
|
const userConfiguration: any = {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: []
|
|
};
|
|
|
|
const appConfiguration = ACLAdapter.adapt(userConfiguration);
|
|
Assert.deepStrictEqual(appConfiguration, {
|
|
default_policy: "deny",
|
|
any: [],
|
|
groups: {},
|
|
users: {}
|
|
});
|
|
});
|
|
});
|
|
}); |