【问题标题】:How to set custom realm in embedded tomcat server? I am using Spring Boot.如何在嵌入式 tomcat 服务器中设置自定义领域?我正在使用 Spring Boot。
【发布时间】:2014-08-17 05:38:34
【问题描述】:

如何为嵌入式 tomcat 设置自定义领域?我正在使用 SpringBoot,但是没有看到通过 Embeddedservletcontainercustomizer 添加自定义领域的方法。

【问题讨论】:

    标签: tomcat7 spring-boot embedded-tomcat-7


    【解决方案1】:

    看起来你应该定义这个 bean:

    @Bean
    public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
        TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
        factory.addContextCustomizers(new TomcatContextCustomizer() {
            @Override
            public void customize(Context context) {
                context.setRealm(new CombinedRealm());
            }
        });
        return factory;
    }
    

    并提供所需的Realm 实现。

    【讨论】:

    • 非常感谢,这解决了问题,我看到 Valve 在日志中被初始化。但是我的要求完全绕过了阀门。知道为什么不先通过阀门吗?我们是否需要从 web.xml 中进行与 / 相关的额外配置?
    • 是的。您可以通过ServletContextInitializer bean 并提供ServletContext.declareRoles 来完成。我认为...
    • 在上面的customize()方法中加入怎么样? SecurityConstraint sc = new SecurityConstraint(); //在此处添加配置 context.addConstraint( sc); context.addSecurityRole("all_auth_users");
    • 仍然没有命中 Valve,理想情况下它应该将请求重定向到我们的集中式 Web 身份验证表单,一旦通过身份验证,它就会处理请求。但是看起来请求直接命中调度程序 servlet,然后控制器即使我在日志中看到 2014-06-26 14:47:51.528 INFO 4048 --- [ost-startStop-1] :GSAuthNAuthenticator(gsauthn-j 版本 4.1.1 ) 成功启动。还有其他想法吗?
    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2018-03-06
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 2019-05-01
    相关资源
    最近更新 更多