As per Tizen security policy, accessing to network should have
Tizen internet privilege.
So, this provides |internet| privilege control for the use of
Nodejs built-in network modules.
Change-Id: If08648f7ba98e90f0af698d608338fff79f86c45
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
<tizen:privilege name="http://tizen.org/privilege/package.info"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/>
+ <tizen:privilege name="http://tizen.org/privilege/internet"/>
<tizen:privilege name="http://tizen.org/privilege/mediastorage"/>
<tizen:profile name="mobile"/>
<tizen:service id="9z6IujVul3.Service" type="global">
}
}
+function isNetworkModule(module: string) {
+ if (module === 'dgram' || module.includes('http') || module === 'net' ||
+ module === 'tls') {
+ return true;
+ }
+ return false;
+}
+
export function initialize(permissions: string[]) {
let tizen = global.tizen;
if (!permissions.includes("http://tizen.org/privilege/alarm")) {
let path = '';
if (args[0] === 'fs') {
path = originalResolveFilename('fs_tizen', args[1], args[2]);
+ } else if (isNetworkModule(args[0]) &&
+ !permissions.includes("http://tizen.org/privilege/internet")) {
+ throw new Error('The internet permission is missing.');
} else {
path = originalResolveFilename(...args);
}