You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@shiro.apache.org by "Lenny Primak (Jira)" <ji...@apache.org> on 2026/06/19 06:31:00 UTC
[jira] [Closed] (SHIRO-489) can not get session on sina app engine
[ https://issues.apache.org/jira/browse/SHIRO-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Lenny Primak closed SHIRO-489.
------------------------------
Resolution: Won't Do
> can not get session on sina app engine
> --------------------------------------
>
> Key: SHIRO-489
> URL: https://issues.apache.org/jira/browse/SHIRO-489
> Project: Shiro
> Issue Type: Bug
> Components: Web
> Affects Versions: 1.2.3
> Environment: sina app engine
> Reporter: 吴开强
> Priority: Major
>
> org.apache.shiro.web.servlet.AbstractShiroFilter
> ...
> protected void doFilterInternal(ServletRequest servletRequest, ServletResponse servletResponse, final FilterChain chain)
> throws ServletException, IOException {
> ...
> final ServletRequest request = prepareServletRequest(servletRequest, servletResponse, chain);
> final ServletResponse response = prepareServletResponse(request, servletResponse, chain);
> final Subject subject = createSubject(request, response);
> //noinspection unchecked
> subject.execute(new Callable() {
> public Object call() throws Exception {
> updateSessionLastAccessTime(request, response);
> executeChain(request, response, chain);
> ...
> }
> executeChain(request, response, chain) would not use request instance,this is a ShiroHttpServletRequest instance and override getSession() method,and then any other place(servlet container or other filter) use this request will something unexpected will happen.for example:session.getId() is null in jsp,and login status can not be holded,I think this method should like this:
> protected void doFilterInternal(final ServletRequest servletRequest,final ServletResponse servletResponse, final FilterChain chain)
> throws ServletException, IOException {
> Throwable t = null;
> try {
> final ServletRequest request = prepareServletRequest(servletRequest, servletResponse, chain);
> final ServletResponse response = prepareServletResponse(request, servletResponse, chain);
> final Subject subject = createSubject(request, response);
> //noinspection unchecked
> subject.execute(new Callable() {
> public Object call() throws Exception {
> updateSessionLastAccessTime(request, response);
> executeChain(servletRequest, servletResponse, chain);
> ...
> }
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@shiro.apache.org
For additional commands, e-mail: issues-help@shiro.apache.org