Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring Securing Web add css, js and images

I want to add css, javascript and images to a spring 4 web application, i could give an example but I'm trying a spring tutorial:

Securing Web - http://spring.io/guides/gs/securing-web/

I added following changes:

package hello;

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.WebMvcConfigurerAdapter;

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/home").setViewName("home");
        registry.addViewController("/").setViewName("home");
        registry.addViewController("/hello").setViewName("hello");
        registry.addViewController("/login").setViewName("login");
    }

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
    }
}

Then i added a folder css with a simple css to the resources folder:

@CHARSET "ISO-8859-1";

p {
    border-style:solid;
    border-width:5px;
}

Then i added the css to the home.html:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
    <head>
        <title>Spring Security Example</title>
        <link type="text/css" rel="stylesheet" href="/resources/css/dummy.css"></link>
    </head>
    <body>
        <h1>Welcome!</h1>

        <p>Click <a th:href="@{/hello}">here</a> to see a greeting.</p>
    </body>
</html>

Security config is injected through the following java class:

    package hello;

    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.WebSecurityConfigurerAdapter;
    import org.springframework.security.config.annotation.web.servlet.configuration.EnableWebMvcSecurity;

    @Configuration
    @EnableWebMvcSecurity
    public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
        @Override
        protected void configure(HttpSecurity http) throws Exception {
            http
                .authorizeRequests()
                    .antMatchers("/", "/home").permitAll()
                    .anyRequest().authenticated();
            http
                .formLogin()
                    .loginPage("/login")
                    .permitAll()
                    .and()
                .logout()
                    .permitAll();
        }

        @Override
        protected void configure(AuthenticationManagerBuilder auth) throws Exception {
            auth
                .inMemoryAuthentication()
                    .withUser("user").password("password").roles("USER");
        }
    }

Then when using the google debug it returns the code

Status Code:302 Found but the css is not applied.

Could anyone indicate the changes necessary to add to make this working?

like image 809
Deceiver Avatar asked Mar 02 '26 19:03

Deceiver


1 Answers

Discovered the problem after some search, the changes need to be able to use the css in the example are: Create the following dirs under src/main:

- webapp
- resources
- css

Then add the dummy.css and in the desired html use:

<link th:href="@{/resources/css/dummy.css}" type="text/css" rel="stylesheet" href="/resources/css/dummy.css"></link>

Thanks to everyone that tried to help :)

like image 179
Deceiver Avatar answered Mar 04 '26 09:03

Deceiver



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!