Diff
checker
텍스트
텍스트
이미지
문서
Excel
폴더
Legal
Enterprise
데스크톱
요금제
로그인
데스크톱 앱 다운로드
텍스트 비교
두 텍스트 파일의 차이점을 찾아보세요
도구
기록
실시간 편집
변경 없는 행 숨기기
줄바꿈 비활성화
레이아웃
나란히 보기
합쳐 보기
비교 단위
스마트
단어
글자
구문 강조
언어 선택
제외
텍스트 변환
첫 변경으로
수정
Diffchecker Desktop
가장 안전하게 Diffchecker를 사용하는 방법. 데스크톱 앱을 사용하면 비교 데이터가 외부로 전송되지 않습니다!
데스크톱 앱 받기
Untitled diff
생성일
10년 전
비교 결과 만료 없음
초기화
내보내기
공유
설명
6 삭제
행
총
삭제
글자
총
삭제
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
83 행
복사
113 추가
행
총
추가
글자
총
추가
이 기능을 계속 사용하려면 업그레이드해 주세요
Diff
checker
Pro
요금제 보기
191 행
복사
복사
복사됨
복사
복사됨
ORIGINAL
app.js
at KibanaDir/src/app.js
MODIFIED CUSTOM
app.js
var express = require('express');
var express = require('express');
var path = require('path');
var path = require('path');
var favicon = require('serve-favicon');
var favicon = require('serve-favicon');
var requestLogger = require('./lib/requestLogger');
var requestLogger = require('./lib/requestLogger');
var auth = require('./lib/auth');
var auth = require('./lib/auth');
복사
복사됨
복사
복사됨
var xsrf = require('./lib/xsrf');
var appHeaders = require('./lib/appHeaders');
var appHeaders = require('./lib/appHeaders');
var cookieParser = require('cookie-parser');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var bodyParser = require('body-parser');
var compression = require('compression');
var compression = require('compression');
var config = require('./config');
var config = require('./config');
복사
복사됨
복사
복사됨
var xsrf = require('./lib/xsrf');
var request = require('request');
var routes = require('./routes/index');
var routes = require('./routes/index');
var proxy = require('./routes/proxy');
var proxy = require('./routes/proxy');
복사
복사됨
복사
복사됨
var app = express();
var app = express();
복사
복사됨
복사
복사됨
var parser = require('./parser.js');
// view engine setup
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.set('view engine', 'jade');
app.set('x-powered-by', false);
app.set('x-powered-by', false);
복사
복사됨
복사
복사됨
function authMiddleware (req, res, next) {
//check auth token here, if not authorized/authenticated
var subjectToken;
function getAdminToken(){
var adminToken;
request.post({
headers: {'content-type' : 'application/json'},
url: 'keystone_url/v3/auth/tokens',
rejectUnhauthorized : false,
strictSSL: false,
json: {
"auth":
{
"identity":
{
"methods": [
"password"
],
"password": {
"user": {
"domain" : {
"id":"default"
},
"name": "csa",
"password": process.env.CSA_PWD
}
}
},
"scope": {
"domain":{
"id":"default"
}
}
}
}
},
function(error, response, body){
adminToken = response.headers['x-subject-token'];
checkValidToken(adminToken);
});
}
function checkContainsHeader() {
//Check if request has an auth token
var containsHeader = 0;
if (req.headers['cookie']!=undefined) {
var cookie = (req.headers['cookie']);
if(cookie.indexOf('X-Auth-Token')!=-1) {
containsHeader=1;
subjectToken = parser(cookie);
}
}
//Redirect if it does not have an auth token
if(!containsHeader){
return res.send('Your session has timed out.Please login again');
}
else {
getAdminToken();
}
}
//Else check if user is authorized
function checkValidToken(adminToken) {
//Admin Token is not loaded in time, given an error
request.get({
headers: {
'content-type' : 'application/json',
'X-Subject-Token' : subjectToken,
'X-Auth-Token' : adminToken
},
url: 'keystone_url/v3/auth/tokens',
rejectUnhauthorized : false,
strictSSL: false,
},
function(error, response, body){
//Check authorization , admin for now
if (response.statusCode == 200) {
checkAuthorized(body);
}
else {
return res.send('Your session has timed out.Please login again');
}
});
}
function checkAuthorized(responseBody) {
var authorized = 0;
body = JSON.parse(responseBody);
roles = body.token.roles;
for ( i in roles){
if(roles[i].name == 'admin' || roles[i].name == 'monitor'){
authorized=1;
}
}
if(!authorized){
return res.send('Your session has timed out.Please login again');
}
next()
}
checkContainsHeader();
}
app.use(authMiddleware)
app.use(requestLogger());
app.use(requestLogger());
app.use(auth());
app.use(auth());
app.use(xsrf(config.kibana.xsrf_token));
app.use(xsrf(config.kibana.xsrf_token));
app.use(appHeaders());
app.use(appHeaders());
app.use(favicon(path.join(config.public_folder, 'styles', 'theme', 'elk.ico')));
app.use(favicon(path.join(config.public_folder, 'styles', 'theme', 'elk.ico')));
if (app.get('env') === 'development') {
if (app.get('env') === 'development') {
require('./dev')(app);
require('./dev')(app);
}
}
// The proxy must be set up before all the other middleware.
// The proxy must be set up before all the other middleware.
// TODO: WE might want to move the middleware to each of the individual routes
// TODO: WE might want to move the middleware to each of the individual routes
// so we don't have weird conflicts in the future.
// so we don't have weird conflicts in the future.
app.use('/elasticsearch', proxy);
app.use('/elasticsearch', proxy);
app.use(bodyParser.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(cookieParser());
app.use(compression());
app.use(compression());
app.use(express.static(config.public_folder));
app.use(express.static(config.public_folder));
if (config.external_plugins_folder) app.use('/plugins', express.static(config.external_plugins_folder));
if (config.external_plugins_folder) app.use('/plugins', express.static(config.external_plugins_folder));
복사
복사됨
복사
복사됨
app.use('/', routes);
app.use('/', routes);
// catch 404 and forward to error handler
// catch 404 and forward to error handler
app.use(function (req, res, next) {
app.use(function (req, res, next) {
var err = new Error('Not Found');
var err = new Error('Not Found');
err.status = 404;
err.status = 404;
next(err);
next(err);
});
});
// error handlers
// error handlers
// development error handler
// development error handler
// will print stacktrace
// will print stacktrace
if (app.get('env') === 'development') {
if (app.get('env') === 'development') {
app.use(function (err, req, res, next) {
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.status(err.status || 500);
res.render('error', {
res.render('error', {
message: err.message,
message: err.message,
error: err
error: err
});
});
});
});
}
}
// production error handler
// production error handler
// no stacktraces leaked to user
// no stacktraces leaked to user
app.use(function (err, req, res, next) {
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.status(err.status || 500);
res.render('error', {
res.render('error', {
message: err.message,
message: err.message,
error: {}
error: {}
});
});
});
});
module.exports = app;
module.exports = app;
저장된 비교 결과
원본
파일 열기
ORIGINAL app.js at KibanaDir/src/app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var requestLogger = require('./lib/requestLogger'); var auth = require('./lib/auth'); var xsrf = require('./lib/xsrf'); var appHeaders = require('./lib/appHeaders'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var compression = require('compression'); var config = require('./config'); var routes = require('./routes/index'); var proxy = require('./routes/proxy'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.set('x-powered-by', false); app.use(requestLogger()); app.use(auth()); app.use(xsrf(config.kibana.xsrf_token)); app.use(appHeaders()); app.use(favicon(path.join(config.public_folder, 'styles', 'theme', 'elk.ico'))); if (app.get('env') === 'development') { require('./dev')(app); } // The proxy must be set up before all the other middleware. // TODO: WE might want to move the middleware to each of the individual routes // so we don't have weird conflicts in the future. app.use('/elasticsearch', proxy); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(compression()); app.use(express.static(config.public_folder)); if (config.external_plugins_folder) app.use('/plugins', express.static(config.external_plugins_folder)); app.use('/', routes); // catch 404 and forward to error handler app.use(function (req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app;
수정본
파일 열기
MODIFIED CUSTOM app.js var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var requestLogger = require('./lib/requestLogger'); var auth = require('./lib/auth'); var appHeaders = require('./lib/appHeaders'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var compression = require('compression'); var config = require('./config'); var xsrf = require('./lib/xsrf'); var request = require('request'); var routes = require('./routes/index'); var proxy = require('./routes/proxy'); var app = express(); var parser = require('./parser.js'); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.set('x-powered-by', false); function authMiddleware (req, res, next) { //check auth token here, if not authorized/authenticated var subjectToken; function getAdminToken(){ var adminToken; request.post({ headers: {'content-type' : 'application/json'}, url: 'keystone_url/v3/auth/tokens', rejectUnhauthorized : false, strictSSL: false, json: { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain" : { "id":"default" }, "name": "csa", "password": process.env.CSA_PWD } } }, "scope": { "domain":{ "id":"default" } } } } }, function(error, response, body){ adminToken = response.headers['x-subject-token']; checkValidToken(adminToken); }); } function checkContainsHeader() { //Check if request has an auth token var containsHeader = 0; if (req.headers['cookie']!=undefined) { var cookie = (req.headers['cookie']); if(cookie.indexOf('X-Auth-Token')!=-1) { containsHeader=1; subjectToken = parser(cookie); } } //Redirect if it does not have an auth token if(!containsHeader){ return res.send('Your session has timed out.Please login again'); } else { getAdminToken(); } } //Else check if user is authorized function checkValidToken(adminToken) { //Admin Token is not loaded in time, given an error request.get({ headers: { 'content-type' : 'application/json', 'X-Subject-Token' : subjectToken, 'X-Auth-Token' : adminToken }, url: 'keystone_url/v3/auth/tokens', rejectUnhauthorized : false, strictSSL: false, }, function(error, response, body){ //Check authorization , admin for now if (response.statusCode == 200) { checkAuthorized(body); } else { return res.send('Your session has timed out.Please login again'); } }); } function checkAuthorized(responseBody) { var authorized = 0; body = JSON.parse(responseBody); roles = body.token.roles; for ( i in roles){ if(roles[i].name == 'admin' || roles[i].name == 'monitor'){ authorized=1; } } if(!authorized){ return res.send('Your session has timed out.Please login again'); } next() } checkContainsHeader(); } app.use(authMiddleware) app.use(requestLogger()); app.use(auth()); app.use(xsrf(config.kibana.xsrf_token)); app.use(appHeaders()); app.use(favicon(path.join(config.public_folder, 'styles', 'theme', 'elk.ico'))); if (app.get('env') === 'development') { require('./dev')(app); } // The proxy must be set up before all the other middleware. // TODO: WE might want to move the middleware to each of the individual routes // so we don't have weird conflicts in the future. app.use('/elasticsearch', proxy); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use(cookieParser()); app.use(compression()); app.use(express.static(config.public_folder)); if (config.external_plugins_folder) app.use('/plugins', express.static(config.external_plugins_folder)); app.use('/', routes); // catch 404 and forward to error handler app.use(function (req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: err }); }); } // production error handler // no stacktraces leaked to user app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {} }); }); module.exports = app;
비교하기