Java В Spring после добавления addViewControllers(ViewControllerRegistry registry) в класс class MvcConfig - перестал работать обычный @Controller
Пытаюсь по урокам и гайдам с сайта сделать спринг приложение с авторизацией/регистрацией , и там везде указано,что через addViewControllers(ViewControllerRegistry registry) в класс class MvcConfig делается. Но до этого был GreetingController , который просто отображал мне страницу /greeting , теперь же через контроллер он не работает - ошибка Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
и новые Mapping-и не получается сделать , даже чтоб просто что-то простое отобразило. Авторизация работает нормально. Как сделать чтоб контроллер работал вместе с addViewControllers? ![структура1]
package com.examples.config;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BdApplication {
public static void main(String[] args) {
SpringApplication.run(BdApplication.class, args);
}
}
package com.examples.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/home").setViewName("home");
registry.addViewController("/").setViewName("home");
registry.addViewController("/personal_Area").setViewName("personal_Area");
registry.addViewController("/login").setViewName("login");
}
}
package com.examples.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@EnableWebSecurity
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests((requests) -> requests
.requestMatchers("/","/greeting").permitAll()
.anyRequest().authenticated()
)
.formLogin((form) -> form
.loginPage("/login")
.permitAll()
)
.logout((logout) -> logout.permitAll());
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user =
User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}
Котроллер:
package com.examples.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class GreetingController {
@GetMapping("/greeting")
public String greeting() {
return "greeting";
}
}
html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" lang="en">
<head>
<meta charset="ISO-8859-1">
<title>My app</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>