+2
This commit is contained in:
parent
a24a75cb6a
commit
dffb806dc7
7 changed files with 42 additions and 8 deletions
6
.idea/misc.xml
Normal file
6
.idea/misc.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/cors.iml" filepath="$PROJECT_DIR$/cors.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
14
cors.iml
Normal file
14
cors.iml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/.pub" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Dart SDK" level="project" />
|
||||||
|
<orderEntry type="library" name="Dart Packages" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
|
@ -9,13 +9,14 @@ export 'src/cors_options.dart';
|
||||||
typedef bool CorsFilter(String origin);
|
typedef bool CorsFilter(String origin);
|
||||||
|
|
||||||
bool _isOriginAllowed(String origin, allowedOrigin) {
|
bool _isOriginAllowed(String origin, allowedOrigin) {
|
||||||
|
allowedOrigin ??= [];
|
||||||
if (allowedOrigin is List) {
|
if (allowedOrigin is List) {
|
||||||
return allowedOrigin.any((x) => _isOriginAllowed(origin, x));
|
return allowedOrigin.any((x) => _isOriginAllowed(origin, x));
|
||||||
} else if (allowedOrigin is String) {
|
} else if (allowedOrigin is String) {
|
||||||
return origin == allowedOrigin;
|
return origin == allowedOrigin;
|
||||||
} else if (allowedOrigin is RegExp) {
|
} else if (allowedOrigin is RegExp) {
|
||||||
return allowedOrigin.hasMatch(origin);
|
return origin != null && allowedOrigin.hasMatch(origin);
|
||||||
} else if (allowedOrigin is CorsFilter) {
|
} else if (origin != null && allowedOrigin is CorsFilter) {
|
||||||
return allowedOrigin(origin);
|
return allowedOrigin(origin);
|
||||||
} else {
|
} else {
|
||||||
return allowedOrigin != false;
|
return allowedOrigin != false;
|
||||||
|
@ -29,7 +30,7 @@ RequestMiddleware cors([CorsOptions options]) {
|
||||||
return (RequestContext req, ResponseContext res) async {
|
return (RequestContext req, ResponseContext res) async {
|
||||||
// Access-Control-Allow-Credentials
|
// Access-Control-Allow-Credentials
|
||||||
if (opts.credentials == true) {
|
if (opts.credentials == true) {
|
||||||
res.heades['Access-Control-Allow-Credentials'] = 'true';
|
res.headers['Access-Control-Allow-Credentials'] = 'true';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Access-Control-Allow-Headers
|
// Access-Control-Allow-Headers
|
||||||
|
|
|
@ -4,7 +4,7 @@ environment:
|
||||||
sdk: ">=1.19.0"
|
sdk: ">=1.19.0"
|
||||||
homepage: "https://github.com/angel-dart/cors.git"
|
homepage: "https://github.com/angel-dart/cors.git"
|
||||||
name: "angel_cors"
|
name: "angel_cors"
|
||||||
version: 1.0.0+1
|
version: 1.0.0+2
|
||||||
dependencies:
|
dependencies:
|
||||||
angel_framework: "^1.0.0-dev"
|
angel_framework: "^1.0.0-dev"
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
|
|
|
@ -12,7 +12,7 @@ main() {
|
||||||
|
|
||||||
setUp(() async {
|
setUp(() async {
|
||||||
app = new Angel()
|
app = new Angel()
|
||||||
..before.add(cors())
|
..before.add(cors(new CorsOptions()))
|
||||||
..post('/', (req, res) async {
|
..post('/', (req, res) async {
|
||||||
res.write('hello world');
|
res.write('hello world');
|
||||||
return false;
|
return false;
|
||||||
|
@ -42,9 +42,8 @@ main() {
|
||||||
});
|
});
|
||||||
|
|
||||||
test('mirror headers', () async {
|
test('mirror headers', () async {
|
||||||
final response = await client.post(url, headers: {
|
final response = await client
|
||||||
'access-control-request-headers': 'foo'
|
.post(url, headers: {'access-control-request-headers': 'foo'});
|
||||||
});
|
|
||||||
expect(response.statusCode, equals(200));
|
expect(response.statusCode, equals(200));
|
||||||
print('Response: ${response.body}');
|
print('Response: ${response.body}');
|
||||||
print('Headers: ${response.headers}');
|
print('Headers: ${response.headers}');
|
||||||
|
|
Loading…
Reference in a new issue