当前位置: 首页 > 知识库问答 >
问题:

从Spring提供静态Html文件,无法使用Spring Security获取

王昆
2023-03-14

我有一个由html、js和css文件组成的restful应用程序。应用程序分为两个文件夹,常规文件夹和管理文件夹。我已经将这两个文件夹放在Spring静态目录下。

资源/主要/资源/静态/常规

src/main/resources/static/admin

src/main/资源/静态/常规/index.html

package coffee.security;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web
                        .configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web
                    .configuration.WebSecurityConfigurerAdapter;

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().withUser("peter").password("peter")
            .authorities("ROLE_USER");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().antMatchers("/admin/**").hasRole("USER")
        .antMatchers("/", "/**").permitAll()
        .and()
        .formLogin().loginPage("/login.html");
    }
}

package coffee.web;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/admin/**").addResourceLocations("/static/admin/");
        registry.addResourceHandler("/**").addResourceLocations("/static/regular/");

    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index.html");
    }

}

共有1个答案

况繁
2023-03-14

只需从以下位置更改您的配置文件:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/admin/**").addResourceLocations("/static/admin/");
        registry.addResourceHandler("/**").addResourceLocations("/static/regular/");

    }

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index.html");
    }

}

致:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("/regular/index.html");
    }

}
 类似资料:
  • 我使用了本教程,但无法访问索引。带有以下内容的html:http://localhost:8080/或http://localhost:8080/src/main/public/index.html IndexHtmlController:

  • 问题内容: 这是我的项目文件夹 这是我index.js中的静态文件配置 这是我的index.html 这是我的nginx配置 但是我在所有脚本上都得到404。另一个奇怪的是,这些文件上的mime-type设置为 我在这里做错了什么? 我有一个项目,该项目具有相同的项目结构,并且具有相同的配置,但它适用于此项目,在这种情况下不起作用。 问题答案: 您无需配置Nginx 和 Express即可提供静态

  • 我在这里运行了spring boot示例web静态项目,对pom进行了此更改 并添加了此类以提供来自相同文件夹位置的重复页面index2.html: json url工作正常,但当我尝试访问localhost:8080/tw我得到一个空白页,并在控制台这个错误: 我做错什么了吗?

  • 我试图提供一个静态资源(css文件)。 我已经注册了位置和处理程序 所以Tomcat的记录器显示到资源的正确映射 将URL路径[/resources/**]映射到类型为[类org.springframework.web.servlet.resource.ResourceHttpRequestHandler]的处理程序上 当浏览器呈现视图时,检查器显示404错误,试图获取静态资源。 应用初始化器。J

  • 问题内容: 我正在用Spring开发一个网站,并试图提供不是.jsp文件(例如.html)的资源。 现在我已经注释掉了我的servlet配置的这一部分 并尝试从控制器返回资源的完整路径。 该文件夹中存在index.html文件。 注意:当我将index.html更改为index.jsp时,我的服务器现在可以正确服务该页面。 谢谢。 问题答案: 最初的问题是配置中指定了一个属性,因此实现类将添加到从

  • 我正在使用Spring开发一个网站,并尝试提供不是. jsp文件(例如. html)的资源 现在我已经注释掉了servlet配置的这一部分 并尝试从控制器返回资源的完整路径。 索引。该文件夹中存在html文件。 注意:当我更改索引时。要索引的html。jsp my server现在可以正确地为页面提供服务。 谢谢你。