Remove ChangeEnvironmentAction class and throw when env flag is set in mod_rewrite rule
This commit is contained in:
parent
58ef98b184
commit
e003594fd8
|
|
@ -30,4 +30,5 @@ project.lock.json
|
||||||
.testPublish/
|
.testPublish/
|
||||||
.idea/
|
.idea/
|
||||||
.vscode/
|
.vscode/
|
||||||
|
*.nuget.props
|
||||||
|
*.nuget.targets
|
||||||
|
|
|
||||||
|
|
@ -178,8 +178,7 @@ namespace Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite
|
||||||
|
|
||||||
if (flags.GetValue(FlagType.Env, out flag))
|
if (flags.GetValue(FlagType.Env, out flag))
|
||||||
{
|
{
|
||||||
// parse env
|
throw new NotSupportedException(Resources.Error_ChangeEnvironmentNotSupported);
|
||||||
_actions.Add(new ChangeEnvironmentAction(flag));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags.HasFlag(FlagType.Forbidden))
|
if (flags.HasFlag(FlagType.Forbidden))
|
||||||
|
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
// Copyright (c) .NET Foundation. All rights reserved.
|
|
||||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
||||||
|
|
||||||
using System;
|
|
||||||
|
|
||||||
namespace Microsoft.AspNetCore.Rewrite.Internal.UrlActions
|
|
||||||
{
|
|
||||||
public class ChangeEnvironmentAction : UrlAction
|
|
||||||
{
|
|
||||||
public ChangeEnvironmentAction(string env)
|
|
||||||
{
|
|
||||||
// TODO
|
|
||||||
throw new NotImplementedException("Changing the environment is not implemented");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ApplyAction(RewriteContext context, MatchResults ruleMatch, MatchResults condMatch)
|
|
||||||
{
|
|
||||||
// Do stuff to modify the env
|
|
||||||
throw new NotImplementedException("Changing the environment is not implemented");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -154,6 +154,22 @@ namespace Microsoft.AspNetCore.Rewrite
|
||||||
return GetString("Error_IntegerMatch_FormatExceptionMessage");
|
return GetString("Error_IntegerMatch_FormatExceptionMessage");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Error adding a mod_rewrite rule. The change environment flag is not supported.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Error_ChangeEnvironmentNotSupported
|
||||||
|
{
|
||||||
|
get { return GetString("Error_ChangeEnvironmentNotSupported"); }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Error adding a mod_rewrite rule. The change environment flag is not supported.
|
||||||
|
/// </summary>
|
||||||
|
internal static string FormatError_ChangeEnvironmentNotSupported()
|
||||||
|
{
|
||||||
|
return GetString("Error_ChangeEnvironmentNotSupported");
|
||||||
|
}
|
||||||
|
|
||||||
private static string GetString(string name, params string[] formatterNames)
|
private static string GetString(string name, params string[] formatterNames)
|
||||||
{
|
{
|
||||||
var value = _resourceManager.GetString(name);
|
var value = _resourceManager.GetString(name);
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,17 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
The primary goals of this format is to allow a simple XML format
|
||||||
that is mostly human readable. The generation and parsing of the
|
that is mostly human readable. The generation and parsing of the
|
||||||
various data types are done through the TypeConverter classes
|
various data types are done through the TypeConverter classes
|
||||||
associated with the data types.
|
associated with the data types.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
... ado.net/XML headers & schema ...
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
<resheader name="version">2.0</resheader>
|
<resheader name="version">2.0</resheader>
|
||||||
|
|
@ -26,36 +26,36 @@
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
<comment>This is a comment</comment>
|
<comment>This is a comment</comment>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
There are any number of "resheader" rows that contain simple
|
||||||
name/value pairs.
|
name/value pairs.
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
Each data row contains a name, and value. The row also contains a
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
text/value conversion through the TypeConverter architecture.
|
text/value conversion through the TypeConverter architecture.
|
||||||
Classes that don't support this are serialized and stored with the
|
Classes that don't support this are serialized and stored with the
|
||||||
mimetype set.
|
mimetype set.
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
The mimetype is used for serialized objects, and tells the
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
read any of the formats listed below.
|
read any of the formats listed below.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
value : The object must be serialized with
|
value : The object must be serialized with
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
value : The object must be serialized into a byte array
|
value : The object must be serialized into a byte array
|
||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
|
|
@ -144,4 +144,7 @@
|
||||||
<data name="Error_IntegerMatch_FormatExceptionMessage" xml:space="preserve">
|
<data name="Error_IntegerMatch_FormatExceptionMessage" xml:space="preserve">
|
||||||
<value>Syntax error for integers in comparison.</value>
|
<value>Syntax error for integers in comparison.</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error_ChangeEnvironmentNotSupported" xml:space="preserve">
|
||||||
|
<value>Error adding a mod_rewrite rule. The change environment flag is not supported.</value>
|
||||||
|
</data>
|
||||||
</root>
|
</root>
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
// Copyright (c) .NET Foundation. All rights reserved.
|
||||||
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Microsoft.AspNetCore.Rewrite.Internal.ApacheModRewrite;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.AspNetCore.Rewrite.Tests
|
||||||
|
{
|
||||||
|
public class RuleBuilderTest
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
// see https://httpd.apache.org/docs/2.4/rewrite/advanced.html#setenvvars
|
||||||
|
public void AddAction_Throws_ChangeEnvNotSupported()
|
||||||
|
{
|
||||||
|
var builder = new RuleBuilder();
|
||||||
|
var flags = new Flags();
|
||||||
|
flags.SetFlag(FlagType.Env, "rewritten:1");
|
||||||
|
|
||||||
|
var ex = Assert.Throws<NotSupportedException>(() => builder.AddAction(null, flags));
|
||||||
|
Assert.Equal(Resources.Error_ChangeEnvironmentNotSupported, ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue