Spring Security: Der gespeicherte SecurityContext hat eine Null-Authentifizierung erhaltenJava

Java-Forum
Anonymous
 Spring Security: Der gespeicherte SecurityContext hat eine Null-Authentifizierung erhalten

Post by Anonymous »

Ich verwende Spring Security Oauth1.0a, um Anfragen zu authentifizieren. Es wird erwartet, dass ein Benutzer, sobald er authentifiziert ist, die Berechtigung erhält, sich auf einer Website umzusehen. Die allererste Zielseite des authentifizierten Benutzers enthält einige JS- und IMG-Dateien. Seltsamerweise werden beim Laden dieser winzigen Teile einige Dateien mit der richtigen Authentifizierung erfolgreich geladen. Aber wenige Millisekunden später können andere kleine Teile aufgrund der Nullauthentifizierung nicht geladen werden. Beachten Sie, dass ich meine Servlet-Kontext-/Sitzungs-/Attribut-Listener aktiviert habe. Es wurden keine Änderungen festgestellt.

Code: Select all

10/24'16 13:44:23> DEBUG [org.springframework.security.web.context.HttpSessionSecurityContextRepository] SecurityContext 'org.springframework.security.core.context.SecurityContextImpl@3f8eaa51: Authentication: org.springframework.security.authentication.UsernamePasswordAuthenticationToken@3f8eaa51: Principal: com.my.connected.spring.User@148c0257; Credentials: [PROTECTED]; Authenticated: true; Details: null; Granted Authorities: TEACHER' stored to HttpSession: 'org.apache.catalina.session.StandardSessionFacade@f3abb79 (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-11) [1256269]
Bisher wurde der Sicherheitskontext wie erwartet in der Sitzung aufgefüllt. Meine angepassten Listener auf Kontext-/Sitzungs-/Attributebene haben danach keine Änderungen festgestellt. Alle Debug-Level-Protokolle werden unten ausgedruckt.

Code: Select all

10/24'16 13:44:23> DEBUG [org.springframework.security.web.access.ExceptionTranslationFilter] Chain processed normally (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-11) [1256269]
10/24'16 13:44:23> DEBUG [org.springframework.security.web.context.SecurityContextPersistenceFilter] SecurityContextHolder now cleared, as request processing completed (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-11) [1256269]
10/24'16 13:44:23> DEBUG [org.springframework.security.web.FilterChainProxy] /home.png at position 1 of 15 in additional filter chain; firing Filter: 'MetadataGeneratorFilter' (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-4) [1256274]
10/24'16 13:44:23> DEBUG [org.springframework.security.web.FilterChainProxy] /home.png at position 2 of 15 in additional filter chain; firing Filter: 'WebAsyncManagerIntegrationFilter' (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-4) [1256274]
10/24'16 13:44:23> DEBUG [org.springframework.security.web.FilterChainProxy] /home.png at position 3 of 15 in additional filter chain; firing Filter: 'SecurityContextPersistenceFilter' (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-4) [1256274]
10/24'16 13:46:37> DEBUG [org.springframework.security.web.context.HttpSessionSecurityContextRepository] Obtained a valid SecurityContext from SPRING_SECURITY_CONTEXT: 'org.springframework.security.core.context.SecurityContextImpl@ffffffff: Null authentication' (CLIENT_IP=|USER_ID=|INV_ID=) (http-nio-443-exec-4) [1391041]
Debug und Protokoll zeigen jedoch beide eine neue Nullauthentifizierung für das Sitzungsattribut SPRING_SECURITY_CONTEXT. Der Kontext selbst ist nicht null.

Weitere Codierungsdetails:

Code: Select all

//the controller method
@RequestMapping(value = {"/ssoep.lti.do"}, method = {RequestMethod.GET, RequestMethod.POST})
public void ltiEndpoint(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SSOValidationException{
request.getRequestDispatcher("/").forward(request, response);
}

//the configuration class
@EnableWebSecurity
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

protected void configureOAuth(HttpSecurity http) throws Exception {
http
.csrf()
.disable();
http
.addFilterAfter(oauthFilter(), BasicAuthenticationFilter.class)
.authorizeRequests()
.antMatchers("/ssoep.lti.do*").authenticated();
}

@Bean
public ProtectedResourceProcessingFilter oauthFilter() {
ProtectedResourceProcessingFilter result = new MheOauthProcessingFilter();
result.setAuthHandler(mheUserOauthAuthenticationHandler);
result.setConsumerDetailsService(mheOauthConsumerDetailsService);
return result;
}
}
Ich verwende die folgenden Pom-Versionen.

Code: Select all

4.3.2.RELEASE
1.4.0.RELEASE
4.1.1.RELEASE
2.0.11.RELEASE
1.0.2.RELEASE

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post