I have a problem with Grails Session. I was thinking about having a Service Class for my session handling. So I created a class called \"SessionService\" (under grails-app/servi
where does RequestContextHolder come from? Its not visible in grails 3.3.8 (in plugin at least)
This also works
import grails.web.api.ServletAttributes
@Transactional
class AuthService implements ServletAttributes {
// session will be available
Here is some sample code where I'm pulling session data and request data from a service without passing the request or session objects as a parameter to the service.
package beecomplete
import org.codehaus.groovy.grails.web.util.WebUtils
class HelperService {
public User getCurrentUser() {
def webUtils = WebUtils.retrieveGrailsWebRequest()
return User.findById(webUtils.getSession().userid)
}
public Object getModelAttribute(String key) {
def webUtils = WebUtils.retrieveGrailsWebRequest()
return webUtils.getCurrentRequest().getAttribute(key)
}
}
For new versions (>2.2) of Grails:
import org.codehaus.groovy.grails.web.util.WebUtils
....
HttpServletRequest request = WebUtils.retrieveGrailsWebRequest().currentRequest
HttpSession session = request.session