У меня есть приложение, которое имеет разные типы пользователей. Мне нужно установить sessionTimeout на основе типа пользователя. Например, администратор 30 минут, пользователь 10 минут. Для этого я установил в application.cfc значение sessionTimeout по умолчанию, равное 30 минутам.
<cfcomponent output="false" extends="org.corfield.framework">
<cfset this.applicationTimeout = createTimeSpan(1,0,0,0) />
<cfset this.sessionManagement = true />
<cfset this.sessionTimeout = createTimeSpan(0,0,30,0) />
.............
............
</cfcomponent>
Когда я выгружаю переменные приложения, я вижу, что sessionTimeout равен 600, что правильно. Теперь в методе onRequestStart я написал код для проверки типа пользователя loggedIn и соответствующей установки sessionTimeout.
<cfif StructKeyExists(session,"user") AND ListLast(CGI.HTTP_REFERER,"/") EQ "login.cfm" >
<cfif session.user.userType EQ "GSA">
<cfset this.sessionTimeout = createTimeSpan(0,0,10,0) />
</cfif>
</cfif>
После этого, когда я выгружаю переменные приложения, sessionTimeout отображается в днях, а не в секундах. А также сессия не заканчивается через 10 минут. Может ли кто-нибудь помочь в этом? Как реализовать два разных sessionTimeout в приложении? Также почему он показывает sessionTimeout в днях, а не в секундах, когда я снова устанавливаю sessionTimeout?