具有Tomcat容器安全性的Spring Boot

时间:2014-10-03 10:37:04

标签: spring tomcat spring-boot

我正在尝试将Tomcat容器安全性添加到Spring Boot应用程序(以利用一些传统的自定义阀门)。使用下面的代码段(从https://github.com/spring-guides/gs-rest-service.git处的示例开始)我预计基本身份验证会启动,但事实并非如此。尝试使用Spring Boot 1.1.6和1.1.7。

“手动”启动嵌入式Tomcat时的相同配置(完全不涉及Boot)按预期工作。

 @Bean
public EmbeddedServletContainerCustomizer containerCustomizer(){
    return new EmbeddedServletContainerCustomizer() {
        @Override
        public void customize(ConfigurableEmbeddedServletContainer factory) {

            if(factory instanceof TomcatEmbeddedServletContainerFactory){
                TomcatEmbeddedServletContainerFactory containerFactory = (TomcatEmbeddedServletContainerFactory) factory;
                containerFactory.addContextCustomizers(new TomcatContextCustomizer() {
                    @Override
                    public void customize(Context context) {

                        LoginConfig config = new LoginConfig();
                        config.setAuthMethod("BASIC");
                        context.setLoginConfig(config);
                        context.addSecurityRole("admin");

                        SecurityConstraint constraint = new SecurityConstraint();
                        constraint.addAuthRole("admin");

                        SecurityCollection collection = new SecurityCollection();
                        collection.addPattern("/*");
                        constraint.addCollection(collection);

                        context.addConstraint(constraint);
                    }
                });
            }

        }
    };
}

0 个答案:

没有答案