浏览代码

Fixed NPE see SEC-143

Ray Krueger 19 年之前
父节点
当前提交
b20c0a674a
共有 1 个文件被更改,包括 5 次插入1 次删除
  1. 5 1
      core/src/main/java/org/acegisecurity/providers/jaas/JaasAuthenticationProvider.java

+ 5 - 1
core/src/main/java/org/acegisecurity/providers/jaas/JaasAuthenticationProvider.java

@@ -421,8 +421,12 @@ public class JaasAuthenticationProvider implements AuthenticationProvider,
      */
     protected void handleLogout(HttpSessionDestroyedEvent event) {
         SecurityContext context = (SecurityContext) event.getSession().getAttribute(HttpSessionContextIntegrationFilter.ACEGI_SECURITY_CONTEXT_KEY);
+        if (context == null) {
+            log.debug("The destroyed session has no SecurityContext");
+            return;
+        }
         Authentication auth = context.getAuthentication();
-        if (auth instanceof JaasAuthenticationToken) {
+        if ((auth != null) && (auth instanceof JaasAuthenticationToken)) {
             JaasAuthenticationToken token = (JaasAuthenticationToken) auth;
             try {
                 LoginContext loginContext = token.getLoginContext();