Если вы следуете руководству по Play Framework 2 для реализации аутентификации: http: // www .playframe work .com / d o c u m t t t i o n / 2. 2. 2 / J a v a G u i de4 — вы заметите, что в Play Framework 2 тайм-аут сеанса отсутствует. в Play Framework 1, но Play Framework 2 следует другому подходу.
Если вы хотите внедрить свой собственный тайм-аут сеанса, а затем следуйте руководству по настройке аутентификации , расширив Security.Authenticator
, и сохраните метку времени в сеансе и продолжайте расширять ее каждый раз, когда делается запрос.
Вот как я это сделал:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
public class Secured extends Security.Authenticator { public static final String UNAUTHENTICATED = "unauthenticated" ; public static User getLoggedInUser() { if (session( "userId" ) == null ) return null ; return User.findById(Long.parseLong(session( "userId" ))); } public static String getLoggedInUsername() { if (session( "userId" ) == null ) return null ; return User.findById(Long.parseLong(session( "userId" ))).getUsername(); } @Override public String getUsername(Http.Context ctx) { // see if user is logged in if (session( "userId" ) == null ) return null ; // see if the session is expired String previousTick = session( "userTime" ); if (previousTick != null && !previousTick.equals( "" )) { long previousT = Long.valueOf(previousTick); long currentT = new Date().getTime(); long timeout = Long.valueOf(Play.application().configuration().getString( "sessionTimeout" )) * 1000 * 60 ; if ((currentT - previousT) > timeout) { // session expired session().clear(); return null ; } } // update time in session String tickString = Long.toString( new Date().getTime()); session( "userTime" , tickString); return User.findById(Long.parseLong(session( "userId" ))).getUsername(); } } |
Затем просто добавьте sessionTimeout=15
(в минутах) в файл conf.
Ссылка: | Как реализовать время ожидания сеанса в Play Framework 2 от нашего партнера по JCG Брайана Портера из блога Poornerd . |