Interceptors and functions to filter requests based on IP addresses
A simple usage example:
import 'package:jaguar/jaguar.dart';
import 'package:jaguar_reflect/jaguar_reflect.dart';
import 'package:jaguar_ban_ip/jaguar_ban_ip.dart';
@Api(path: '/api')
class ExampleApi {
@Get(path: '/info')
@WrapIPFilter(const IPFilterOptions(const ['127.0.0.0/8'])) //Blocks loopback IPs
String info() => "A very secret message!";
}
main() async {
Jaguar server = new Jaguar();
server.addApi(reflectJaguar(new ExampleApi()));
await server.serve();
}
Please file feature requests and bugs at the issue tracker.
example/jaguar_ban_ip_example.dart
// Copyright (c) 2017, SERAGUD. All rights reserved. Use of this source code
// is governed by a BSD-style license that can be found in the LICENSE file.
import 'package:jaguar/jaguar.dart';
import 'package:jaguar_ban_ip/jaguar_ban_ip.dart';
@Api(path: '/api')
class ExampleApi {
@Get(path: '/info')
@WrapOne(#ipFilter)
String info() => "A very secret message!";
//Blocks loopback IPs
IPFilter ipFilter(Context ctx) =>
new IPFilter(const IPFilterOptions(const ['127.0.0.0/8']).compile());
}
main() async {
final server = new Jaguar();
server.addApiReflected(new ExampleApi());
await server.serve();
}
Add this to your package's pubspec.yaml file:
dependencies:
jaguar_ban_ip: "^0.1.1"
You can install packages from the command line:
with pub:
$ pub get
with Flutter:
$ flutter packages get
Alternatively, your editor might support pub get
or packages get
.
Check the docs for your editor to learn more.
Now in your Dart code, you can use:
import 'package:jaguar_ban_ip/jaguar_ban_ip.dart';
Version | Uploaded | Documentation | Archive |
---|---|---|---|
0.1.1 | Jul 10, 2017 |
|
|
0.1.0 | Jun 6, 2017 |
|
|
0.0.1 | Mar 2, 2017 |
|
|
We analyzed this package on Apr 23, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:
Popularity:
Describes how popular the package is relative to other packages.
[more]
|
0 | / 100 |
Health:
Code health derived from static analysis.
[more]
|
26 | / 100 |
Maintenance:
Reflects how tidy and up-to-date the package is.
[more]
|
98 | / 100 |
Overall score:
Weighted score of the above.
[more]
|
27 |
Detected platforms: Flutter, other
Primary library:
package:jaguar_ban_ip/jaguar_ban_ip.dart
with components:io
.
Fix analysis and formatting issues.
Analysis or formatting checks reported 4 errors.
Strong-mode analysis of
lib/src/jaguar_ban_ip_base.dart
failed with the following error:line: 138 col: 29
Classes can only extend other classes.
Package is pre-v1 release.
While there is nothing inherently wrong with versions of
0.*.*
, it usually means that the author is still experimenting with the general direction API.
Package | Constraint | Resolved | Available |
---|---|---|---|
Direct dependencies | |||
Dart SDK | >=1.8.0 <2.0.0 | ||
jaguar | ^0.6.5 | 0.6.29 | 1.3.11 |
jaguar_ipnet | >=0.0.1 <0.1.0 | 0.0.1 | |
Transitive dependencies | |||
args | 1.2.0 | 1.4.2 | |
charcode | 1.1.1 | ||
collection | 1.14.9 | ||
convert | 2.0.1 | ||
crypto | 2.0.2+1 | ||
dice | 1.8.0 | ||
http_server | 0.9.7 | ||
intl | 0.15.6 | ||
logging | 0.11.3+1 | ||
meta | 1.1.2 | ||
mime | 0.9.6 | ||
mustache | 0.2.5+1 | 1.0.0 | |
path | 1.5.1 | ||
quiver_hashcode | 1.0.0 | ||
source_span | 1.4.0 | ||
stack_trace | 1.9.2 | ||
string_scanner | 1.0.2 | ||
typed_data | 1.1.5 | ||
yaml | 2.1.13 | ||
Dev dependencies | |||
test | >=0.12.0 <0.13.0 |