Page 1 of 1

Frühlingssicherheit: Saved SecurityContext hat eine Null -Authentifizierung erhalten

Posted: 31 Aug 2025, 11:04
by Anonymous
Ich verwende Frühlingssicherheit oAuth1.0a, um Anforderungen zu authentifizieren. Es wird erwartet, dass S/Sobald ein Benutzer authentifiziert ist, erhalten er die Berechtigungen, um auf einer Website zu erkunden. Die erste Zielseite des authentifizierten Benutzers enthält einige JS und IMGs. Seltsam genug, dass während des Ladens dieser winzigen Teile einige Dateien erfolgreich mit der richtigen Authentifizierung geladen werden. Aber Split von Millisekunden später werden andere winzige Teile aufgrund der Nullauthentifizierung nicht geladen. Beachten Sie, dass ich meinen Servlet Context/Session/Attribut -Hörer eingeschaltet habe. Es wurden keine Änderungen festgestellt. < /p>

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]
< /code>

Bisher hat der Sicherheitskontext wie erwartet in der Sitzung besiedelt. Mein individueller Kontext-/Sitzungs-/Attributebene -Hörer erkannten danach keine Änderungen. Alle Debug -Level -Protokolle werden unten ausgedruckt. < /P>

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]
< /code>

Debuggen und protokollieren beide eine neue Null -Authentifizierung für das Sitzungsattribut Spring_security_Context. Der Kontext selbst ist nicht null. < /p>

Weitere Codierungsdetails: < /p>

//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;
}
}
< /code>

Ich verwende die folgenden POM -Versionen.  < /p>

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