r242 - trunk/nuiton-security/src/main/java/org/nuiton/web/security
Author: echatellier Date: 2012-12-05 15:26:56 +0100 (Wed, 05 Dec 2012) New Revision: 242 Url: http://nuiton.org/projects/nuiton-web/repository/revisions/242 Log: Fix page refresh to get real user rights content Modified: trunk/nuiton-security/src/main/java/org/nuiton/web/security/SecurityShiroFilter.java Modified: trunk/nuiton-security/src/main/java/org/nuiton/web/security/SecurityShiroFilter.java =================================================================== --- trunk/nuiton-security/src/main/java/org/nuiton/web/security/SecurityShiroFilter.java 2012-11-26 15:27:14 UTC (rev 241) +++ trunk/nuiton-security/src/main/java/org/nuiton/web/security/SecurityShiroFilter.java 2012-12-05 14:26:56 UTC (rev 242) @@ -26,6 +26,7 @@ import java.io.IOException; import java.util.Properties; +import java.util.concurrent.Callable; import javax.servlet.FilterChain; import javax.servlet.ServletException; @@ -122,7 +123,7 @@ @Override protected void doFilterInternal(ServletRequest servletRequest, - ServletResponse servletResponse, FilterChain chain) + ServletResponse servletResponse, final FilterChain chain) throws ServletException, IOException { // get subject @@ -149,7 +150,21 @@ if (log.isDebugEnabled()) { log.debug("User is permitted to access " + perm); } - super.doFilterInternal(servletRequest, servletResponse, chain); + + // on devrait appeler simplement super.doFilterInternal(servletRequest, servletResponse, chain); + // mais on ne peut pas car il recreer un nouveau Subject + // et n'utilise pas le notre :( + final ServletRequest request = prepareServletRequest(servletRequest, servletResponse, chain); + final ServletResponse response = prepareServletResponse(request, servletResponse, chain); + //noinspection unchecked + subjectUser.execute(new Callable() { + public Object call() throws Exception { + updateSessionLastAccessTime(request, response); + executeChain(request, response, chain); + return null; + } + }); + } else { if (log.isDebugEnabled()) { log.debug("User is NOT permitted to access " + perm);
participants (1)
-
echatellier@users.nuiton.org