有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Spring安全XML配置和Java配置中的Spring SAML

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

我是SAML集成的新手


共 (2) 个答案

  1. # 1 楼答案

    是的,您可以使用Java配置SpringSAML,就像您可以使用SpringSecurity的其余部分一样

    您需要一个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。维德诺塔里斯。春天靴子安全山姆。网状物配置。网络安全配置。爪哇展示了秘制酱汁的成分

  2. # 2 楼答案

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