如何在shiro中使用jndi?

问题描述 投票:0回答:0

这是带有 jndi 的 springboot

@Bean
    public ServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected TomcatWebServer getTomcatWebServer(Tomcat tomcat) {
                tomcat.enableNaming();//启用默认禁用的JNDI命名
                return super.getTomcatWebServer(tomcat);
            }
            @Override
            protected void postProcessContext(Context context) {

                List<DataConfig>  list =  dataConfigProperty.getDatabase();
                for (DataConfig dataConfig : list) {
                    //构建一个ContextResource对象,然后添加到Context对象中
                    ContextResource resource = new ContextResource();
                    resource.setName(dataConfig.getJndiname());
                    resource.setType(DataSource.class.getName());
                    resource.setProperty("driverClassName", dataConfig.getDriverClassName());
                    resource.setProperty("url", dataConfig.getUrl());
                    resource.setProperty("username", dataConfig.getUsername());
                    resource.setProperty("password",dataConfig.getPassword());
                    context.getNamingResources().addResource(resource);
                }

                super.postProcessContext(context);
            }
        };
        return tomcat;
    }

但是这个加载顺序是在shiro加载之后。 请给我一些建议。谢谢

不知道怎么解决

spring-boot jndi shiro
© www.soinside.com 2019 - 2024. All rights reserved.