Add SSL/TLS encryption

This commit is contained in:
Tatsuhiro Tsujikawa 2012-10-02 23:50:57 +09:00
parent e1675c513d
commit 2bc0f3a90a
3 changed files with 18 additions and 4 deletions

View File

@ -573,6 +573,13 @@
<input type="text" class="input-xlarge" placeholder="6800" id="input_port"/> <input type="text" class="input-xlarge" placeholder="6800" id="input_port"/>
<p class="help-block">Enter the port of the server on which the rpc for aria2 is running (default = 6800)</p> <p class="help-block">Enter the port of the server on which the rpc for aria2 is running (default = 6800)</p>
</div> </div>
<label class="control-label" for="input_encryption">SSL/TLS encryption:</label>
<div class="controls">
<button type="button" class="btn" data-toggle="button" id="input_encryption">ON</button>
<p class="help-block">Enable SSL/TLS encryption.</p>
</div>
<label class="control-label" for="input_user">Enter the username (optional):</label> <label class="control-label" for="input_user">Enter the username (optional):</label>
<div class="controls"> <div class="controls">
<input type="text" class="input-xlarge" id="input_user"/> <input type="text" class="input-xlarge" id="input_user"/>

View File

@ -30,8 +30,9 @@ JsonRPC.prototype = {
}, },
invoke: function(opts) { invoke: function(opts) {
var rpc = this; var rpc = this;
var scheme = rpc.serverConf.encryption ? 'https' : 'http';
rpc.ariaRequest( rpc.ariaRequest(
'http://' + rpc.serverConf.host + ':' + rpc.serverConf.port + '/jsonrpc', scheme + '://' + rpc.serverConf.host + ':' + rpc.serverConf.port + '/jsonrpc',
opts.multicall, opts.multicall,
opts.func, opts.func,
opts.params, opts.params,
@ -44,7 +45,7 @@ JsonRPC.prototype = {
return opts.error(); return opts.error();
} }
var authUrl = 'http://' + var authUrl = scheme + '://' +
rpc.serverConf.user + ":" + rpc.serverConf.user + ":" +
rpc.serverConf.pass + "@" + rpc.serverConf.pass + "@" +
rpc.serverConf.host + ':' + rpc.serverConf.host + ':' +
@ -80,7 +81,8 @@ var SocketRPC = function(conf) {
rpc.serverConf = conf; rpc.serverConf = conf;
rpc.initialized = false; rpc.initialized = false;
rpc.handles = []; rpc.handles = [];
rpc.sock = new WebSocket('ws://' + conf.host + ':' + conf.port + '/jsonrpc'); var scheme = rpc.serverConf.encryption ? 'wss' : 'ws';
rpc.sock = new WebSocket(scheme + '://' + conf.host + ':' + conf.port + '/jsonrpc');
rpc.sock.onopen = function() { rpc.sock.onopen = function() {
rpc.initialized = true; rpc.initialized = true;
}; };

View File

@ -24,7 +24,8 @@ var server_conf = {
host: 'localhost', host: 'localhost',
port: 6800, port: 6800,
user: "", user: "",
pass: "" pass: "",
encryption: false
}; };
var ariaConnection = new AriaConnection(server_conf); var ariaConnection = new AriaConnection(server_conf);
@ -40,6 +41,9 @@ var custom_aria2_connect = function() {
clear_dialogs(); clear_dialogs();
$("#input_host").attr("placeholder", server_conf.host); $("#input_host").attr("placeholder", server_conf.host);
$("#input_port").attr("placeholder", server_conf.port); $("#input_port").attr("placeholder", server_conf.port);
if(server_conf.encryption) {
$("#input_encryption").addClass("active");
}
modals.change_conf.modal('show'); modals.change_conf.modal('show');
}; };
var update_server_conf = function() { var update_server_conf = function() {
@ -47,6 +51,7 @@ var update_server_conf = function() {
var port = $('#input_port').val().trim(); var port = $('#input_port').val().trim();
server_conf.user = $('#input_user').val().trim(); server_conf.user = $('#input_user').val().trim();
server_conf.pass = $('#input_pass').val().trim(); server_conf.pass = $('#input_pass').val().trim();
server_conf.encryption = $('#input_encryption').hasClass('active');
if(host.length !== 0) { if(host.length !== 0) {
server_conf.host = host; server_conf.host = host;
} }