feat: Use authorization on the MongoDB server
This commit is contained in:
parent
5b399bf0d2
commit
4a3aa60a4d
5
backend/README.md
Normal file
5
backend/README.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Lateinicus Server
|
||||||
|
## Requirements
|
||||||
|
- a database called `lateinicus`
|
||||||
|
- a user called `backend` on the database `lateinicus`
|
||||||
|
- the role `readWrite` for the database `lateinicus`
|
@ -1,3 +1,6 @@
|
|||||||
|
import { env } from "process";
|
||||||
|
import * as assert from "assert";
|
||||||
|
|
||||||
import * as express from "express";
|
import * as express from "express";
|
||||||
import * as cors from "cors";
|
import * as cors from "cors";
|
||||||
|
|
||||||
@ -15,13 +18,15 @@ const baseRouter = express.Router();
|
|||||||
const authRouter = express.Router();
|
const authRouter = express.Router();
|
||||||
|
|
||||||
import { MongoClient } from "mongodb";
|
import { MongoClient } from "mongodb";
|
||||||
const assert = require('assert');
|
|
||||||
|
const user = encodeURIComponent("backend");
|
||||||
|
const password = encodeURIComponent(env["LATEINICUS_USER_PW"]);
|
||||||
|
|
||||||
(async function() {
|
(async function() {
|
||||||
// Connection URL
|
|
||||||
const url = 'mongodb://128.1.0.2:27017/myproject';
|
|
||||||
// Database Name
|
// Database Name
|
||||||
const dbName = 'myproject';
|
const dbName = 'lateinicus';
|
||||||
|
// Connection URL
|
||||||
|
const url = `mongodb://${user}:${password}@128.1.0.2:27017/?authMechanism=SCRAM-SHA-1&authSource=${dbName}`;
|
||||||
let client: MongoClient;
|
let client: MongoClient;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -30,7 +35,7 @@ const assert = require('assert');
|
|||||||
console.log("Connected to MongoDB");
|
console.log("Connected to MongoDB");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.log(err.stack);
|
console.log(err.stack);
|
||||||
assert(1, 2);
|
assert(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
const db = client.db(dbName);
|
const db = client.db(dbName);
|
||||||
|
@ -2,7 +2,11 @@ version: "3.6"
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
db:
|
db:
|
||||||
image: mongo:4.1.3-xenial
|
image: mongo:4.0.2-xenial
|
||||||
|
command: mongod --config /etc/mongo/mongod.conf
|
||||||
|
volumes:
|
||||||
|
- ./server/db/:/etc/mongo/db/:rw
|
||||||
|
- ./server/mongod.conf:/etc/mongo/mongod.conf:ro
|
||||||
expose:
|
expose:
|
||||||
- "27017"
|
- "27017"
|
||||||
networks:
|
networks:
|
||||||
@ -11,6 +15,8 @@ services:
|
|||||||
|
|
||||||
backend:
|
backend:
|
||||||
image: lateinicus/server
|
image: lateinicus/server
|
||||||
|
environment:
|
||||||
|
- LATEINICUS_USER_PW=abc123
|
||||||
expose:
|
expose:
|
||||||
- "8080"
|
- "8080"
|
||||||
depends_on:
|
depends_on:
|
||||||
|
10
server/mongod.conf
Normal file
10
server/mongod.conf
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
storage:
|
||||||
|
engine: wiredTiger
|
||||||
|
dbPath: /etc/mongo/db/
|
||||||
|
|
||||||
|
security:
|
||||||
|
authorization: enabled
|
||||||
|
javascriptEnabled: false
|
||||||
|
|
||||||
|
net:
|
||||||
|
port: 27017
|
Reference in New Issue
Block a user