Задать вопрос
@P_Alexander
First head

Спринг не дает доступ к странице, как решить?

Добрый вечер, при настройке спринг секюрити, спринг не дает доступ к странице. А именно виводит мне просто html код страници. Полазив в хедерах нашел такую строчку X-XSS-Protection: 1; mode=block, думаю из за ние, когда отключаю в сприн секюр. конфиг хедеры то все начинает работать.
Вопрос, как сделать что бы работало без отключения хедеров?
Настройки
В корне WEB_INF создал страницу test.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>TEST SUPER TEST</h1>
</body>
</html>

к ней контроллер
@Controller
public class TestController {

    @RequestMapping(value = "/stest", method = RequestMethod.GET)
    public String main(Model model) {
        return "test";
    }
}

Спринг секюрити конфиг
@EnableWebSecurity
public class SecurityConf extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().
//                headers().disable()
                .authorizeRequests()
                .antMatchers("/stest").permitAll()
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication().withUser("Alex").password("alex123").roles("ADMIN");
        auth.inMemoryAuthentication().withUser("Masha").password("masha123").roles("USER");
    }

}

Секюрити инициалайзер
public class SecurityInitializer extends AbstractSecurityWebApplicationInitializer {
}

Web config
@Configuration
@EnableWebMvc
@ComponentScans(value = { @ComponentScan("security.com.springCong"), @ComponentScan("security.com.controller")})
@Import(SecurityConf.class)
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private ApplicationContext applicationContext;

    @Bean
    public SpringResourceTemplateResolver templateResolver() {
        SpringResourceTemplateResolver springResourceTemplateResolver = new SpringResourceTemplateResolver();
        springResourceTemplateResolver.setApplicationContext(applicationContext);
        springResourceTemplateResolver.setPrefix("WEB-INF/");
        springResourceTemplateResolver.setSuffix(".html");
        springResourceTemplateResolver.setTemplateMode(/*TemplateMode.HTML*/ "XHTML"); 
        springResourceTemplateResolver.setCacheable(false); 
        return springResourceTemplateResolver;
    }

    @Bean
    public SpringTemplateEngine templateEngine() {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.addDialect(new LayoutDialect());
        templateEngine.setTemplateResolver(templateResolver());
        templateEngine.setEnableSpringELCompiler(true);
        return templateEngine;
    }

    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        ThymeleafViewResolver thymeleafViewResolver = new ThymeleafViewResolver();
        thymeleafViewResolver.setTemplateEngine(templateEngine());
        thymeleafViewResolver.setContentType("UTF-8");
        thymeleafViewResolver.setViewNames(new String[] {"*"});
        registry.viewResolver(thymeleafViewResolver);
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/");
        registry.addResourceHandler("/js/**").addResourceLocations("/WEB-INF/resources/js/");
        registry.addResourceHandler("/css/**").addResourceLocations("/WEB-INF/resources/css/");
        registry.addResourceHandler("/bs/**").addResourceLocations("/WEB-INF/resources/bs/");
    }
}
  • Вопрос задан
  • 180 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@P_Alexander Автор вопроса
First head
закоментировав эту строку - thymeleafViewResolver.setContentType("UTF-8"); все решилось, из за того что спринг ожидал только UTF-8, (а приходил не только такой ContentType) он блочил все.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы