Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Logout resulting in multiple redirects #12

Closed
rakpan opened this issue Apr 30, 2015 · 3 comments
Closed

Logout resulting in multiple redirects #12

rakpan opened this issue Apr 30, 2015 · 3 comments
Labels
kind/bug Categorizes issue or pull request as related to a bug.

Comments

@rakpan
Copy link

rakpan commented Apr 30, 2015

Hi,

This code is resulting in a multiple redirect loop when I have the logout success page is "/logout" instead of "/".

I suspect this has something to do with the logout configuration in HttpSecurity configuration method.
(Below code)
http
.logout()
.logoutSuccessUrl("/");

Please let me know if you agree with this.

@rakpan
Copy link
Author

rakpan commented Apr 30, 2015

Just in case.. The way i fixed the issue is as below

        http
                .addFilterBefore(samlLogoutFilter(), LogoutFilter.class)
                .addFilterBefore(metadataGeneratorFilter(), ChannelProcessingFilter.class)
                .addFilterAfter(samlFilter(), BasicAuthenticationFilter.class);

        http
                .logout()
                .logoutUrl("/saml/logout/**")
                .logoutSuccessUrl("/logout");

and then commented out the code for logout filter below

public FilterChainProxy samlFilter() throws Exception {
    List<SecurityFilterChain> chains = new ArrayList<>();
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/login/**"),
            samlEntryPoint()));
    /*chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/logout/**"),
            samlLogoutFilter())); */
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/metadata/**"),
            metadataDisplayFilter()));
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/SSO/**"),
            samlWebSSOProcessingFilter()));
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/SSOHoK/**"),
            samlWebSSOHoKProcessingFilter()));
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/SingleLogout/**"),
            samlLogoutProcessingFilter()));
    chains.add(new DefaultSecurityFilterChain(new AntPathRequestMatcher("/saml/discovery/**"),
            samlIDPDiscovery()));
    return new FilterChainProxy(chains);
}

@vdenotaris
Copy link
Owner

Thanks for your contribution.

@vdenotaris vdenotaris added kind/enhancement Categorizes issue or pull request as related to enhancement. kind/bug Categorizes issue or pull request as related to a bug. and removed kind/enhancement Categorizes issue or pull request as related to enhancement. labels Aug 31, 2015
@pavanjava
Copy link

Hi @rakpan

I want to configure multiple metadatageneratorFilters in the before filter can i do it as below since i have that i have two IDP's configured at the same application

`http
.addFilterBefore(xyzMetadataGeneratorFilter(),ChannelProcessingFilter.class)
.addFilterBefore(abcMetadataGeneratorFilter(),ChannelProcessingFilter.class)
.addFilterAfter(samlFilter(),BasicAuthenticationFilter.class);

@bean
public MetadataGeneratorFilter abcMetadataGeneratorFilter() {
return new MetadataGeneratorFilter(abcMetadataGenerator());
}

@bean
public MetadataGeneratorFilter xyzMetadataGeneratorFilter() {
return new MetadataGeneratorFilter(xyzMetadataGenerator());
}

@bean
public MetadataGenerator abcMetadataGenerator() {
MetadataGenerator metadataGenerator = new MetadataGenerator();
metadataGenerator.setEntityId("ABC-" + DEPLOYMENT_ENV);
metadataGenerator.setExtendedMetadata(extendedMetadata());
metadataGenerator.setIncludeDiscoveryExtension(false);
metadataGenerator.setKeyManager(keyManager());
return metadataGenerator;
}

@bean
public MetadataGenerator xyzMetadataGenerator() {
MetadataGenerator metadataGenerator = new MetadataGenerator();
metadataGenerator.setEntityId("XYZ-" + DEPLOYMENT_ENV);
metadataGenerator.setExtendedMetadata(extendedMetadata());
metadataGenerator.setIncludeDiscoveryExtension(false);
metadataGenerator.setKeyManager(keyManager());
return metadataGenerator;
}
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or pull request as related to a bug.
Projects
None yet
Development

No branches or pull requests

3 participants