Skip to content

Commit ab80743

Browse files
committed
Restore thread-local auth cache so that it still applies some caching (old style) when caching is disabled.
1 parent 5d62dee commit ab80743

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

Diff for: src/main/java/org/ohdsi/webapi/shiro/PermissionManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public UserSimpleAuthorizationInfo getAuthorizationInfo(final String login) {
205205

206206
@CacheEvict(cacheNames = CachingSetup.AUTH_INFO_CACHE, allEntries = true)
207207
public void clearAuthorizationInfoCache() {
208-
authorizationInfoCache.remove();
208+
authorizationInfoCache.set(new ConcurrentHashMap<>());
209209
}
210210

211211
@Transactional
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package org.ohdsi.webapi.shiro.filters;
2+
3+
import org.ohdsi.webapi.security.PermissionService;
4+
import org.ohdsi.webapi.shiro.PermissionManager;
5+
import org.springframework.beans.factory.annotation.Autowired;
6+
import org.springframework.stereotype.Component;
7+
8+
import javax.servlet.Filter;
9+
import javax.servlet.FilterChain;
10+
import javax.servlet.FilterConfig;
11+
import javax.servlet.ServletException;
12+
import javax.servlet.ServletRequest;
13+
import javax.servlet.ServletResponse;
14+
import java.io.IOException;
15+
16+
@Component
17+
public class CacheFilter implements Filter {
18+
19+
@Autowired
20+
private PermissionManager permissionManager;
21+
22+
@Override
23+
public void init(FilterConfig filterConfig) throws ServletException {
24+
25+
}
26+
27+
@Override
28+
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
29+
30+
permissionManager.clearAuthorizationInfoCache();
31+
chain.doFilter(request, response);
32+
}
33+
34+
@Override
35+
public void destroy() {
36+
37+
}
38+
}

0 commit comments

Comments
 (0)