2121package eu .openanalytics .containerproxy .auth .impl .saml ;
2222
2323import eu .openanalytics .containerproxy .auth .UserLogoutHandler ;
24- import java .util .ArrayList ;
25- import java .util .Arrays ;
26- import java .util .Collection ;
27- import java .util .HashMap ;
28- import java .util .List ;
29- import java .util .Map ;
30- import java .util .Timer ;
31-
32- import javax .inject .Inject ;
33-
3424import eu .openanalytics .containerproxy .auth .impl .SAMLAuthenticationBackend ;
3525import org .apache .commons .httpclient .HttpClient ;
3626import org .apache .logging .log4j .LogManager ;
3727import org .apache .logging .log4j .Logger ;
3828import org .apache .velocity .app .VelocityEngine ;
39- import org .opensaml .saml2 .core .Attribute ;
4029import org .opensaml .saml2 .metadata .provider .HTTPMetadataProvider ;
4130import org .opensaml .saml2 .metadata .provider .MetadataProvider ;
4231import org .opensaml .saml2 .metadata .provider .MetadataProviderException ;
4332import org .opensaml .util .resource .ResourceException ;
44- import org .opensaml .xml .XMLObject ;
4533import org .opensaml .xml .parse .StaticBasicParserPool ;
4634import org .opensaml .xml .parse .XMLParserException ;
47- import org .opensaml .xml .schema .XSAny ;
48- import org .opensaml .xml .schema .XSString ;
4935import org .springframework .beans .factory .annotation .Qualifier ;
5036import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
5137import org .springframework .context .annotation .Bean ;
6046import org .springframework .security .core .userdetails .User ;
6147import org .springframework .security .core .userdetails .UsernameNotFoundException ;
6248import org .springframework .security .saml .*;
63- import org .springframework .security .saml .context .SAMLContextProvider ;
6449import org .springframework .security .saml .context .SAMLContextProviderImpl ;
6550import org .springframework .security .saml .key .EmptyKeyManager ;
6651import org .springframework .security .saml .key .JKSKeyManager ;
7459import org .springframework .security .saml .processor .SAMLProcessorImpl ;
7560import org .springframework .security .saml .userdetails .SAMLUserDetailsService ;
7661import org .springframework .security .saml .util .VelocityFactory ;
77- import org .springframework .security .saml .websso .SingleLogoutProfile ;
78- import org .springframework .security .saml .websso .SingleLogoutProfileImpl ;
79- import org .springframework .security .saml .websso .WebSSOProfile ;
80- import org .springframework .security .saml .websso .WebSSOProfileConsumer ;
81- import org .springframework .security .saml .websso .WebSSOProfileConsumerHoKImpl ;
82- import org .springframework .security .saml .websso .WebSSOProfileConsumerImpl ;
83- import org .springframework .security .saml .websso .WebSSOProfileImpl ;
84- import org .springframework .security .saml .websso .WebSSOProfileOptions ;
62+ import org .springframework .security .saml .websso .*;
8563import org .springframework .security .web .DefaultSecurityFilterChain ;
8664import org .springframework .security .web .FilterChainProxy ;
8765import org .springframework .security .web .SecurityFilterChain ;
9270import org .springframework .security .web .authentication .logout .SimpleUrlLogoutSuccessHandler ;
9371import org .springframework .security .web .util .matcher .AntPathRequestMatcher ;
9472
73+ import javax .inject .Inject ;
74+ import java .util .*;
75+
9576@ Configuration
9677@ ConditionalOnProperty (name ="proxy.authentication" , havingValue ="saml" )
9778public class SAMLConfiguration {
@@ -326,6 +307,11 @@ public SAMLProcessingFilter samlWebSSOProcessingFilter() throws Exception {
326307 return samlWebSSOProcessingFilter ;
327308 }
328309
310+ @ Bean
311+ public AlreadyLoggedInFilter alreadyLoggedInFilter () {
312+ return new AlreadyLoggedInFilter ();
313+ }
314+
329315 @ Bean
330316 public WebSSOProfileConsumer webSSOprofileConsumer () {
331317 return new WebSSOProfileConsumerImpl ();
@@ -342,7 +328,7 @@ public SAMLFilterSet samlFilter() throws Exception {
342328 chains .add (new DefaultSecurityFilterChain (new AntPathRequestMatcher ("/saml/login/**" ), samlEntryPoint ()));
343329 chains .add (new DefaultSecurityFilterChain (new AntPathRequestMatcher ("/saml/logout/**" ), samlLogoutFilter ()));
344330 chains .add (new DefaultSecurityFilterChain (new AntPathRequestMatcher ("/saml/SingleLogout/**" ), samlLogoutProcessingFilter ()));
345- chains .add (new DefaultSecurityFilterChain (new AntPathRequestMatcher ("/saml/SSO/**" ), samlWebSSOProcessingFilter ()));
331+ chains .add (new DefaultSecurityFilterChain (new AntPathRequestMatcher ("/saml/SSO/**" ), alreadyLoggedInFilter (), samlWebSSOProcessingFilter ()));
346332 return new SAMLFilterSet (chains );
347333 }
348334
0 commit comments