Update to 6.1.4 - Align with the improved kataras/go-sessions

This commit is contained in:
Gerasimos (Makis) Maropoulos 2017-02-07 02:37:35 +02:00
parent 84cd4ca6f4
commit 5aaec72634
4 changed files with 34 additions and 31 deletions

View File

@ -29,19 +29,37 @@ Users should prepare their apps for:
- Replace: `.AcquireCtx/.ReleaseCtx` with `app.Context.Acquire/Release/Run`. - Replace: `.AcquireCtx/.ReleaseCtx` with `app.Context.Acquire/Release/Run`.
- NEW feature: able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware like normal - IMPROVEMENT: Now you're able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware(Chain-of-responsibility pattern) using the `iris.ToHandler` wrapper func without any other custom boilerplate.
iris.HandlerFunc with `iris.ToHandler`. (I already pushed that to the current version, because I think it will make your life easier now). * already pushed to the current version
- FIX: `iris run main.go` didn't reload the app on file changes when saving a source file via some IDEs,
- FIX: [iris run main.go](https://github.com/kataras/iris/tree/master/iris#run) not reloading when file changes maden by some of the IDEs,
because they do override the operating system's fs signals. The majority of because they do override the operating system's fs signals. The majority of
editors worked before but I couldn't let some developers without support. (I already pushed that to the current version) editors worked before but I couldn't let some developers without support.
* already pushed to the current version
- FIX: custom routers not working well with static file serving, reverse routing and per-party http custom errors. - FIX: custom routers not working well with static file serving, reverse routing and per-party http custom errors.
- IMPROVEMENT: [Sessions manager](https://github.com/kataras/go-sessions) works even faster now.
* already pushed to the current version
- NEW: HTTP/2 Push `context.Push` - NEW: HTTP/2 Push `context.Push`
The full list of next version's features among with one by one steps to refactor your code in breaking-cases will be noticed here when it will be released. The full list of next version's features among with one by one steps to refactor your code in breaking-cases will be noticed here when it will be released.
## 6.1.3 -> 6.1.4
- FIX: [iris run main.go](https://github.com/kataras/iris/tree/master/iris#run) not reloading when file changes maden by some of the IDEs,
because they do override the operating system's fs signals. The majority of
editors worked before but I couldn't let some developers without support.
- IMPROVEMENT: Now you're able to pass an `func(http.ResponseWriter, *http.Request, http.HandlerFunc)` third-party net/http middleware(Chain-of-responsibility pattern) using the `iris.ToHandler` wrapper func without any other custom boilerplate.
- IMPROVEMENT: [Sessions manager](https://github.com/kataras/go-sessions) works even faster now.
## 6.1.2 -> 6.1.3 ## 6.1.2 -> 6.1.3
- Added a configuration field `iris.Config.DisableBodyConsumptionOnUnmarshal` - Added a configuration field `iris.Config.DisableBodyConsumptionOnUnmarshal`

View File

@ -1,7 +1,8 @@
<p align="center"> <p align="center">
<a href="https://www.gitbook.com/book/kataras/iris/details"> <a href="https://www.gitbook.com/book/kataras/iris/details">
<img width="500" src="https://raw.githubusercontent.com/kataras/iris/master/logo.jpg" <img width="500" src="https://raw.githubusercontent.com/kataras/iris/master/logo.jpg"
alt="Logo created by an Iris community member, @OneebMalik"> alt="Logo created by an Iris community member, https://github.com/OneebMalik"
title="Logo created by an Iris community member, https://github.com/OneebMalik">
</a> </a>
<br/> <br/>
@ -20,7 +21,7 @@
<br/> <br/>
<a href="https://github.com/kataras/iris/blob/master/HISTORY.md"><img src="https://img.shields.io/badge/%20version%20-%206.1.3%20-blue.svg?style=flat-square" alt="CHANGELOG/HISTORY"></a> <a href="https://github.com/kataras/iris/blob/master/HISTORY.md"><img src="https://img.shields.io/badge/%20version%20-%206.1.4%20-blue.svg?style=flat-square" alt="CHANGELOG/HISTORY"></a>
<a href="https://github.com/iris-contrib/examples"><img src="https://img.shields.io/badge/%20examples-repository-3362c2.svg?style=flat-square" alt="Examples"></a> <a href="https://github.com/iris-contrib/examples"><img src="https://img.shields.io/badge/%20examples-repository-3362c2.svg?style=flat-square" alt="Examples"></a>
@ -199,6 +200,7 @@ Today I spend all my days and nights coding for Iris, and I'm happy about this,
- Star the project, will help you to follow the upcoming features. - Star the project, will help you to follow the upcoming features.
- [Donate](https://github.com/kataras/iris/blob/master/DONATIONS.md), if you can afford any cost. - [Donate](https://github.com/kataras/iris/blob/master/DONATIONS.md), if you can afford any cost.
- Write an article about Iris or even post a Tweet. - Write an article about Iris or even post a Tweet.
- Do Pull Requests on the [iris-contrib](https://github.com/iris-contrib) organisation's repositories, like book and examples.
If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md). If you are interested in contributing to the Iris project, please see the document [CONTRIBUTING](https://github.com/kataras/iris/blob/master/.github/CONTRIBUTING.md).
@ -216,7 +218,7 @@ Besides the fact that we have a [community chat][Chat] for questions or reports
Versioning Versioning
------------ ------------
Current: **v6.1.3** Current: **v6.1.4**
v5: https://github.com/kataras/iris/tree/5.0.0 v5: https://github.com/kataras/iris/tree/5.0.0

View File

@ -557,17 +557,6 @@ var (
} }
} }
// OptionSessionsGcDuration every how much duration(GcDuration) the memory should be clear for unused cookies (GcDuration)
// for example: time.Duration(2)*time.Hour. it will check every 2 hours if cookie hasn't be used for 2 hours,
// deletes it from backend memory until the user comes back, then the session continue to work as it was
//
// Default 2 hours
OptionSessionsGcDuration = func(val time.Duration) OptionSet {
return func(c *Configuration) {
c.Sessions.GcDuration = val
}
}
// OptionSessionsDisableSubdomainPersistence set it to true in order dissallow your q subdomains to have access to the session cookie // OptionSessionsDisableSubdomainPersistence set it to true in order dissallow your q subdomains to have access to the session cookie
// Defaults to false // Defaults to false
OptionSessionsDisableSubdomainPersistence = func(val bool) OptionSet { OptionSessionsDisableSubdomainPersistence = func(val bool) OptionSet {
@ -585,8 +574,6 @@ var (
const ( const (
// DefaultCookieName the secret cookie's name for sessions // DefaultCookieName the secret cookie's name for sessions
DefaultCookieName = "irissessionid" DefaultCookieName = "irissessionid"
// DefaultSessionGcDuration is the default Session Manager's GCDuration , which is 2 hours
DefaultSessionGcDuration = time.Duration(2) * time.Hour
// DefaultCookieLength is the default Session Manager's CookieLength, which is 32 // DefaultCookieLength is the default Session Manager's CookieLength, which is 32
DefaultCookieLength = 32 DefaultCookieLength = 32
) )
@ -598,9 +585,7 @@ func DefaultSessionsConfiguration() SessionsConfiguration {
CookieLength: DefaultCookieLength, CookieLength: DefaultCookieLength,
DecodeCookie: false, DecodeCookie: false,
Expires: 0, Expires: 0,
GcDuration: DefaultSessionGcDuration,
DisableSubdomainPersistence: false, DisableSubdomainPersistence: false,
DisableAutoGC: true,
} }
} }

14
iris.go
View File

@ -81,7 +81,7 @@ const (
// IsLongTermSupport flag is true when the below version number is a long-term-support version // IsLongTermSupport flag is true when the below version number is a long-term-support version
IsLongTermSupport = false IsLongTermSupport = false
// Version is the current version number of the Iris web framework // Version is the current version number of the Iris web framework
Version = "6.1.3" Version = "6.1.4"
banner = ` _____ _ banner = ` _____ _
|_ _| (_) |_ _| (_)
@ -315,8 +315,9 @@ func New(setters ...OptionSetter) *Framework {
// the whole ws configuration and websocket server is really initialized only on first OnConnection // the whole ws configuration and websocket server is really initialized only on first OnConnection
s.Websocket = NewWebsocketServer(s) s.Websocket = NewWebsocketServer(s)
// set the sessions, look .initialize for its GC // set the sessions in order to UseSessionDB to work
s.sessions = sessions.New(sessions.DisableAutoGC(true)) // see Build state
s.sessions = sessions.New()
} }
// routing // routing
@ -423,11 +424,8 @@ func (s *Framework) Build() {
} }
} }
// init, starts the session manager if the Cookie configuration field is not empty // set the user's configuration (may changed after .New())
if s.Config.Sessions.Cookie != "" { s.sessions.Set(s.Config.Sessions)
// re-set the configuration field for any case
s.sessions.Set(s.Config.Sessions, sessions.DisableAutoGC(false))
}
// prepare the mux runtime fields again, for any case // prepare the mux runtime fields again, for any case
s.mux.setCorrectPath(!s.Config.DisablePathCorrection) s.mux.setCorrectPath(!s.Config.DisablePathCorrection)