mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-17 17:34:09 +02:00
core: allow cors requests (#13199)
This commit is contained in:
@@ -177,7 +177,7 @@ hr {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#jackett-allowext, #jackett-allowupdate, #jackett-logging, #jackett-prerelease, #jackett-cache-enabled {
|
#jackett-allowext, #jackett-allowcors, #jackett-allowupdate, #jackett-logging, #jackett-prerelease, #jackett-cache-enabled {
|
||||||
width: 25px;
|
width: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -125,6 +125,7 @@ function loadJackettSettings() {
|
|||||||
|
|
||||||
$("#jackett-savedir").val(data.blackholedir);
|
$("#jackett-savedir").val(data.blackholedir);
|
||||||
$("#jackett-allowext").attr('checked', data.external);
|
$("#jackett-allowext").attr('checked', data.external);
|
||||||
|
$("#jackett-allowcors").attr('checked', data.cors);
|
||||||
$("#jackett-allowupdate").attr('checked', data.updatedisabled);
|
$("#jackett-allowupdate").attr('checked', data.updatedisabled);
|
||||||
$("#jackett-prerelease").attr('checked', data.prerelease);
|
$("#jackett-prerelease").attr('checked', data.prerelease);
|
||||||
$("#jackett-logging").attr('checked', data.logging);
|
$("#jackett-logging").attr('checked', data.logging);
|
||||||
@@ -1528,6 +1529,7 @@ function bindUIButtons() {
|
|||||||
var jackett_basepathoverride = $("#jackett-basepathoverride").val();
|
var jackett_basepathoverride = $("#jackett-basepathoverride").val();
|
||||||
var jackett_baseurloverride = $("#jackett-baseurloverride").val();
|
var jackett_baseurloverride = $("#jackett-baseurloverride").val();
|
||||||
var jackett_external = $("#jackett-allowext").is(':checked');
|
var jackett_external = $("#jackett-allowext").is(':checked');
|
||||||
|
var jackett_cors = $("#jackett-allowcors").is(':checked');
|
||||||
var jackett_update = $("#jackett-allowupdate").is(':checked');
|
var jackett_update = $("#jackett-allowupdate").is(':checked');
|
||||||
var jackett_prerelease = $("#jackett-prerelease").is(':checked');
|
var jackett_prerelease = $("#jackett-prerelease").is(':checked');
|
||||||
var jackett_logging = $("#jackett-logging").is(':checked');
|
var jackett_logging = $("#jackett-logging").is(':checked');
|
||||||
@@ -1548,6 +1550,7 @@ function bindUIButtons() {
|
|||||||
var jsonObject = {
|
var jsonObject = {
|
||||||
port: jackett_port,
|
port: jackett_port,
|
||||||
external: jackett_external,
|
external: jackett_external,
|
||||||
|
cors: jackett_cors,
|
||||||
updatedisabled: jackett_update,
|
updatedisabled: jackett_update,
|
||||||
prerelease: jackett_prerelease,
|
prerelease: jackett_prerelease,
|
||||||
blackholedir: $("#jackett-savedir").val(),
|
blackholedir: $("#jackett-savedir").val(),
|
||||||
|
@@ -161,7 +161,7 @@ hr {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#jackett-allowext, #jackett-allowupdate, #jackett-logging, #jackett-prerelease, #jackett-cache-enabled {
|
#jackett-allowext, #jackett-allowcors, #jackett-allowupdate, #jackett-logging, #jackett-prerelease, #jackett-cache-enabled {
|
||||||
width: 25px;
|
width: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -28,8 +28,8 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
|
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
|
||||||
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
|
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
|
||||||
<link rel="stylesheet" type="text/css" href="../css/tagify.css?changed=11662">
|
<link rel="stylesheet" type="text/css" href="../css/tagify.css?changed=11662">
|
||||||
<link rel="stylesheet" type="text/css" href="../custom.css?changed=202204222" media="only screen and (min-device-width: 480px)">
|
<link rel="stylesheet" type="text/css" href="../custom.css?changed=202204223" media="only screen and (min-device-width: 480px)">
|
||||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=202204222" media="only screen and (max-device-width: 480px)">
|
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=202204223" media="only screen and (max-device-width: 480px)">
|
||||||
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
|
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
|
||||||
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
|
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
|
||||||
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
|
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
|
||||||
@@ -178,6 +178,10 @@
|
|||||||
<span class="input-header">External access: </span>
|
<span class="input-header">External access: </span>
|
||||||
<input id="jackett-allowext" class="form-control input-right" type="checkbox" />
|
<input id="jackett-allowext" class="form-control input-right" type="checkbox" />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="input-area">
|
||||||
|
<span class="input-header">Allow CORS: </span>
|
||||||
|
<input id="jackett-allowcors" class="form-control input-right" type="checkbox" />
|
||||||
|
</div>
|
||||||
<div class="input-area">
|
<div class="input-area">
|
||||||
<span class="input-header">Disable auto update: </span>
|
<span class="input-header">Disable auto update: </span>
|
||||||
<input id="jackett-allowupdate" class="form-control input-right" type="checkbox" />
|
<input id="jackett-allowupdate" class="form-control input-right" type="checkbox" />
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<link href="../bootstrap/bootstrap.min.css" rel="stylesheet">
|
<link href="../bootstrap/bootstrap.min.css" rel="stylesheet">
|
||||||
<link href="../animate.css" rel="stylesheet">
|
<link href="../animate.css" rel="stylesheet">
|
||||||
<link href="../custom.css?changed=202204222" rel="stylesheet">
|
<link href="../custom.css?changed=202204223" rel="stylesheet">
|
||||||
|
|
||||||
<title>Jackett</title>
|
<title>Jackett</title>
|
||||||
</head>
|
</head>
|
||||||
|
@@ -33,6 +33,7 @@ namespace Jackett.Common.Models.Config
|
|||||||
|
|
||||||
public int Port { get; set; }
|
public int Port { get; set; }
|
||||||
public bool AllowExternal { get; set; }
|
public bool AllowExternal { get; set; }
|
||||||
|
public bool AllowCORS { get; set; }
|
||||||
public string APIKey { get; set; }
|
public string APIKey { get; set; }
|
||||||
public string AdminPassword { get; set; }
|
public string AdminPassword { get; set; }
|
||||||
public string InstanceId { get; set; }
|
public string InstanceId { get; set; }
|
||||||
|
@@ -14,6 +14,8 @@ namespace Jackett.Common.Models.DTO
|
|||||||
[DataMember]
|
[DataMember]
|
||||||
public bool external { get; set; }
|
public bool external { get; set; }
|
||||||
[DataMember]
|
[DataMember]
|
||||||
|
public bool cors { get; set; }
|
||||||
|
[DataMember]
|
||||||
public string api_key { get; set; }
|
public string api_key { get; set; }
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public string blackholedir { get; set; }
|
public string blackholedir { get; set; }
|
||||||
@@ -66,6 +68,7 @@ namespace Jackett.Common.Models.DTO
|
|||||||
this.notices = notices;
|
this.notices = notices;
|
||||||
port = config.Port;
|
port = config.Port;
|
||||||
external = config.AllowExternal;
|
external = config.AllowExternal;
|
||||||
|
cors = config.AllowCORS;
|
||||||
api_key = config.APIKey;
|
api_key = config.APIKey;
|
||||||
blackholedir = config.BlackholeDir;
|
blackholedir = config.BlackholeDir;
|
||||||
updatedisabled = config.UpdateDisabled;
|
updatedisabled = config.UpdateDisabled;
|
||||||
|
@@ -79,6 +79,7 @@ namespace Jackett.Server.Controllers
|
|||||||
var originalAllowExternal = serverConfig.AllowExternal;
|
var originalAllowExternal = serverConfig.AllowExternal;
|
||||||
var port = config.port;
|
var port = config.port;
|
||||||
var external = config.external;
|
var external = config.external;
|
||||||
|
var cors = config.cors;
|
||||||
var saveDir = config.blackholedir;
|
var saveDir = config.blackholedir;
|
||||||
var updateDisabled = config.updatedisabled;
|
var updateDisabled = config.updatedisabled;
|
||||||
var preRelease = config.prerelease;
|
var preRelease = config.prerelease;
|
||||||
@@ -113,10 +114,12 @@ namespace Jackett.Server.Controllers
|
|||||||
var omdbApiUrl = config.omdburl;
|
var omdbApiUrl = config.omdburl;
|
||||||
|
|
||||||
if (config.basepathoverride != serverConfig.BasePathOverride)
|
if (config.basepathoverride != serverConfig.BasePathOverride)
|
||||||
{
|
|
||||||
webHostRestartNeeded = true;
|
webHostRestartNeeded = true;
|
||||||
}
|
|
||||||
|
|
||||||
|
if (config.cors != serverConfig.AllowCORS)
|
||||||
|
webHostRestartNeeded = true;
|
||||||
|
|
||||||
|
serverConfig.AllowCORS = cors;
|
||||||
serverConfig.UpdateDisabled = updateDisabled;
|
serverConfig.UpdateDisabled = updateDisabled;
|
||||||
serverConfig.UpdatePrerelease = preRelease;
|
serverConfig.UpdatePrerelease = preRelease;
|
||||||
serverConfig.BasePathOverride = basePathOverride;
|
serverConfig.BasePathOverride = basePathOverride;
|
||||||
|
@@ -30,6 +30,8 @@ namespace Jackett.Server
|
|||||||
{
|
{
|
||||||
public class Startup
|
public class Startup
|
||||||
{
|
{
|
||||||
|
private const string AllowAllOrigins = "AllowAllOrigins";
|
||||||
|
|
||||||
public Startup(IConfiguration configuration) => Configuration = configuration;
|
public Startup(IConfiguration configuration) => Configuration = configuration;
|
||||||
|
|
||||||
public IConfiguration Configuration { get; }
|
public IConfiguration Configuration { get; }
|
||||||
@@ -37,9 +39,14 @@ namespace Jackett.Server
|
|||||||
// This method gets called by the runtime. Use this method to add services to the container.
|
// This method gets called by the runtime. Use this method to add services to the container.
|
||||||
public IServiceProvider ConfigureServices(IServiceCollection services)
|
public IServiceProvider ConfigureServices(IServiceCollection services)
|
||||||
{
|
{
|
||||||
services.AddResponseCompression();
|
services.AddResponseCompression()
|
||||||
|
.AddCors(
|
||||||
|
options =>
|
||||||
|
{
|
||||||
|
options.AddPolicy(name: AllowAllOrigins, corsPolicyBuilder => corsPolicyBuilder.AllowAnyOrigin());
|
||||||
|
|
||||||
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
|
})
|
||||||
|
.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
|
||||||
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
|
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme,
|
||||||
options =>
|
options =>
|
||||||
{
|
{
|
||||||
@@ -49,8 +56,6 @@ namespace Jackett.Server
|
|||||||
options.Cookie.Name = "Jackett";
|
options.Cookie.Name = "Jackett";
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if NET461
|
#if NET461
|
||||||
services.AddMvc(
|
services.AddMvc(
|
||||||
config => config.Filters.Add(
|
config => config.Filters.Add(
|
||||||
@@ -141,6 +146,9 @@ namespace Jackett.Server
|
|||||||
|
|
||||||
app.UseAuthentication();
|
app.UseAuthentication();
|
||||||
|
|
||||||
|
if (Helper.ServerConfiguration.AllowCORS)
|
||||||
|
app.UseCors(AllowAllOrigins);
|
||||||
|
|
||||||
app.UseMvc();
|
app.UseMvc();
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@@ -183,6 +191,9 @@ namespace Jackett.Server
|
|||||||
|
|
||||||
app.UseRouting();
|
app.UseRouting();
|
||||||
|
|
||||||
|
if (Helper.ServerConfiguration.AllowCORS)
|
||||||
|
app.UseCors(AllowAllOrigins);
|
||||||
|
|
||||||
app.UseEndpoints(endpoints => endpoints.MapControllers());
|
app.UseEndpoints(endpoints => endpoints.MapControllers());
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user