mirror of
https://github.com/0rangebananaspy/authelia.git
synced 2024-09-14 22:47:21 +07:00
Fix bad redirection when no default_redirection_url is provided
This commit is contained in:
parent
b37c0293b8
commit
d1f0543ac6
|
@ -4,7 +4,6 @@ import objectPath = require("object-path");
|
||||||
import winston = require("winston");
|
import winston = require("winston");
|
||||||
import Endpoints = require("../../../../../shared/api");
|
import Endpoints = require("../../../../../shared/api");
|
||||||
import { ServerVariables } from "../../ServerVariables";
|
import { ServerVariables } from "../../ServerVariables";
|
||||||
import { AuthenticationSessionHandler } from "../../AuthenticationSessionHandler";
|
|
||||||
import BluebirdPromise = require("bluebird");
|
import BluebirdPromise = require("bluebird");
|
||||||
import ErrorReplies = require("../../ErrorReplies");
|
import ErrorReplies = require("../../ErrorReplies");
|
||||||
import UserMessages = require("../../../../../shared/UserMessages");
|
import UserMessages = require("../../../../../shared/UserMessages");
|
||||||
|
@ -12,11 +11,11 @@ import { RedirectionMessage } from "../../../../../shared/RedirectionMessage";
|
||||||
import Constants = require("../../../../../shared/constants");
|
import Constants = require("../../../../../shared/constants");
|
||||||
|
|
||||||
export default function (vars: ServerVariables) {
|
export default function (vars: ServerVariables) {
|
||||||
return function (req: express.Request, res: express.Response): BluebirdPromise<void> {
|
return function (req: express.Request, res: express.Response)
|
||||||
|
: BluebirdPromise<void> {
|
||||||
|
|
||||||
return new BluebirdPromise<void>(function (resolve, reject) {
|
return new BluebirdPromise<void>(function (resolve, reject) {
|
||||||
const authSession = AuthenticationSessionHandler.get(req, vars.logger);
|
let redirectUrl: string = "/";
|
||||||
let redirectUrl: string;
|
|
||||||
if (vars.config.default_redirection_url) {
|
if (vars.config.default_redirection_url) {
|
||||||
redirectUrl = vars.config.default_redirection_url;
|
redirectUrl = vars.config.default_redirection_url;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,10 @@ block form-header
|
||||||
|
|
||||||
block content
|
block content
|
||||||
img(class="header-img" src="/img/success.png" alt="success")
|
img(class="header-img" src="/img/success.png" alt="success")
|
||||||
p You are already logged in as <b>#{ username }</b>.<br/><br/>
|
if redirection_url
|
||||||
| If you are not redirected in few seconds, click <a href="#{ redirection_url }">here</a>.<br/><br/>
|
p You are already logged in as <b>#{ username }</b>.<br/><br/>
|
||||||
| Otherwise, click <a href="#{ logout_endpoint }">here</a> to log off.
|
| If you are not redirected in few seconds, click <a href="#{ redirection_url }">here</a>.<br/><br/>
|
||||||
|
| Otherwise, click <a href="#{ logout_endpoint }">here</a> to log off.
|
||||||
|
else
|
||||||
|
p You are already logged in as <b>#{ username }</b>.<br/><br/>
|
||||||
|
| Click <a href="#{ logout_endpoint }">here</a> to log off.
|
||||||
|
|
|
@ -15,7 +15,7 @@ describe("test second factor GET endpoint handler", function () {
|
||||||
let res: ExpressMock.ResponseMock;
|
let res: ExpressMock.ResponseMock;
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
const s = ServerVariablesMockBuilder.build(true);
|
const s = ServerVariablesMockBuilder.build();
|
||||||
mocks = s.mocks;
|
mocks = s.mocks;
|
||||||
vars = s.variables;
|
vars = s.variables;
|
||||||
|
|
||||||
|
|
41
server/test/routes/secondfactor/redirect.test.ts
Normal file
41
server/test/routes/secondfactor/redirect.test.ts
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
import Redirect from "../../../src/lib/routes/secondfactor/redirect";
|
||||||
|
import ExpressMock = require("../../mocks/express");
|
||||||
|
import { ServerVariablesMockBuilder, ServerVariablesMock }
|
||||||
|
from "../../mocks/ServerVariablesMockBuilder";
|
||||||
|
import { ServerVariables } from "../../../src/lib/ServerVariables";
|
||||||
|
import Assert = require("assert");
|
||||||
|
|
||||||
|
describe("test second factor redirect", function() {
|
||||||
|
let req: ExpressMock.RequestMock;
|
||||||
|
let res: ExpressMock.ResponseMock;
|
||||||
|
let mocks: ServerVariablesMock;
|
||||||
|
let vars: ServerVariables;
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
const s = ServerVariablesMockBuilder.build();
|
||||||
|
mocks = s.mocks;
|
||||||
|
vars = s.variables;
|
||||||
|
|
||||||
|
req = ExpressMock.RequestMock();
|
||||||
|
res = ExpressMock.ResponseMock();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should redirect to default_redirection_url", function() {
|
||||||
|
vars.config.default_redirection_url = "http://default_redirection_url";
|
||||||
|
Redirect(vars)(req as any, res as any)
|
||||||
|
.then(function() {
|
||||||
|
Assert(res.json.calledWith({
|
||||||
|
redirect: "http://default_redirection_url"
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should redirect to /", function() {
|
||||||
|
Redirect(vars)(req as any, res as any)
|
||||||
|
.then(function() {
|
||||||
|
Assert(res.json.calledWith({
|
||||||
|
redirect: "/"
|
||||||
|
}));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user