Spring Security XML配置和Java配置中的Spring SAML

问题描述 投票:4回答:2

我正在我的一个项目中使用Spring Security,现在想介绍Spring SAML。到目前为止,我已经使用过Spring的XML配置。我可以使用基于Java的配置集成SAML吗?

我是SAML集成的新手。

java spring security spring-security spring-saml
2个回答
3
投票

是的,您可以像其他Spring Security一样使用Java配置Spring SAML。

您需要一个带有这样的配置类的WebSecurityConfig类

   protected void configure(HttpSecurity http) throws Exception {
    http
        .httpBasic()
            .authenticationEntryPoint(samlEntryPoint());
    http
        .csrf()
            .disable();
    http
        .addFilterBefore(metadataGeneratorFilter(), ChannelProcessingFilter.class)
        .addFilterAfter(samlFilter(), BasicAuthenticationFilter.class);
    http        
        .authorizeRequests()
        .antMatchers("/").permitAll()
        .antMatchers("/error").permitAll()
        .antMatchers("/saml/**").permitAll()
        .anyRequest().authenticated();
    http
        .logout()
            .logoutSuccessUrl("/");
}

[您只需要使用Java将所有不同的bean一起编写,例如像这样设置SecurityFilterChain

    public FilterChainProxy samlFilter() throws Exception {
    List<SecurityFilterChain> chains = new ArrayList<SecurityFilterChain>();
    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);
}

以该项目https://github.com/vdenotaris/spring-boot-security-saml-sample为例,了解如何完成此项目。 com.vdenotaris.spring.boot.security.saml.web.config.WebSecurityConfig.java显示了秘密调味料的成分。


1
投票

您可以将xml配置用于SAML集成。很难从头开始创建它,因此我建议您下载spring saml示例应用程序并基于它创建配置。与现有应用程序的集成只是spring安全性的集成。

© www.soinside.com 2019 - 2024. All rights reserved.