Initial Commit to Add RestAPI Server to IEC
[iec.git] / src / foundation / api / apiserver / app / init.go
1 package app
2
3 import (
4         "github.com/revel/revel"
5 )
6
7 var (
8         // AppVersion revel app version (ldflags)
9         AppVersion string
10
11         // BuildTime revel app build-time (ldflags)
12         BuildTime string
13 )
14
15 func init() {
16         // Filters is the default set of global filters.
17         revel.Filters = []revel.Filter{
18                 revel.PanicFilter,             // Recover from panics and display an error page instead.
19                 revel.RouterFilter,            // Use the routing table to select the right Action
20                 revel.FilterConfiguringFilter, // A hook for adding or removing per-Action filters.
21                 revel.ParamsFilter,            // Parse parameters into Controller.Params.
22                 revel.SessionFilter,           // Restore and write the session cookie.
23                 revel.FlashFilter,             // Restore and write the flash cookie.
24                 revel.ValidationFilter,        // Restore kept validation errors and save new ones from cookie.
25                 revel.I18nFilter,              // Resolve the requested language
26                 HeaderFilter,                  // Add some security based headers
27                 revel.InterceptorFilter,       // Run interceptors around the action.
28                 revel.CompressFilter,          // Compress the result.
29                 revel.BeforeAfterFilter,       // Call the before and after filter functions
30                 revel.ActionInvoker,           // Invoke the action.
31         }
32
33         // Register startup functions with OnAppStart
34         // revel.DevMode and revel.RunMode only work inside of OnAppStart. See Example Startup Script
35         // ( order dependent )
36         // revel.OnAppStart(ExampleStartupScript)
37         // revel.OnAppStart(InitDB)
38         // revel.OnAppStart(FillCache)
39 }
40
41 // HeaderFilter adds common security headers
42 // There is a full implementation of a CSRF filter in
43 // https://github.com/revel/modules/tree/master/csrf
44 var HeaderFilter = func(c *revel.Controller, fc []revel.Filter) {
45         c.Response.Out.Header().Add("X-Frame-Options", "SAMEORIGIN")
46         c.Response.Out.Header().Add("X-XSS-Protection", "1; mode=block")
47         c.Response.Out.Header().Add("X-Content-Type-Options", "nosniff")
48         c.Response.Out.Header().Add("Referrer-Policy", "strict-origin-when-cross-origin")
49
50         fc[0](c, fc[1:]) // Execute the next filter stage.
51 }
52
53 //func ExampleStartupScript() {
54 //      // revel.DevMod and revel.RunMode work here
55 //      // Use this script to check for dev mode and set dev/prod startup scripts here!
56 //      if revel.DevMode == true {
57 //              // Dev mode
58 //      }
59 //}