shelf_enforces_ssl 1.2.1
shelf_enforces_ssl: ^1.2.1 copied to clipboard
Enforces that users can only make API requests over HTTPS (SSL).
Example #
Add the Middleware your Shelf API #
by simply adding:
.addMiddleware(enforceSSL()),
copied to clipboard
you can define a custom error Response by setting the errorResponse
parameter:
.addMiddleware(
enforceSSL(
errorResponse: Response(
403,
body: 'Only use HTTPS when you try to send data to this API',
),
),
),
copied to clipboard
you can also add use the Middleware in DartFrog by doing the following:
Handler maxContentLengthValidator(Handler handler) {
return handler.use(fromShelfMiddleware(enforceSSl()));
}
copied to clipboard
Full example #
import 'package:content_length_validator/content_length_validator.dart';
import 'package:shelf/shelf.dart';
import 'package:shelf/shelf_io.dart' as shelf_io;
void main() async {
final handler = const Pipeline()
.addMiddleware(
enforceSSL(
errorResponse: Response(
403,
body: 'Only use HTTPS when you try to send data to this API',
),
),
),
.addMiddleware(logRequests())
.addHandler(_echoRequest);
final server = await shelf_io.serve(handler, 'localhost', 8080);
// Enable content compression
server.autoCompress = true;
print('Serving at http://${server.address.host}:${server.port}');
}
Response _echoRequest(Request request) => Response.ok('Request for "${request.url}"');
copied to clipboard